5

我想循环一个向量并将这些值作为参数发送给一个函数。我要发送的值之一是 NULL。这是我一直在尝试的

things <- c('M','F',NULL)
for (thing in things){
    doSomething(thing)
}

但是循环忽略了 NULL 值。有什么建议么?

4

2 回答 2

10

循环不会忽略它。看看,things你会发现NULL不存在。

你不能在一个向量中混合类型,所以你不能在同一个向量中同时拥有"character""NULL"类型。请改用列表。

things <- list('M','F',NULL)
for (thing in things) {
  print(thing)
}
[1] "M"
[1] "F"
NULL
于 2012-07-24T20:21:43.247 回答
5

当你用 构造一个向量时c(),NULL 值被忽略:

things <- c('M','F',NULL)
things
[1] "M" "F"

但是,如果传递NULL下游很重要,您可以使用 alist代替:

things <- list('M','F',NULL)
for (thing in things){
  print(thing)
}
[1] "M"
[1] "F"
NULL
于 2012-07-24T20:24:38.683 回答