循环在包含NULL的向量

时间:2012-07-24 20:19:10

标签: r

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

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

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

2 个答案:

答案 0 :(得分:9)

循环不会忽略它。查看things,您会看到NULL不存在。

您无法在向量中混合类型,因此您不能在同一向量中同时使用"character""NULL"类型。改为使用列表。

things <- list('M','F',NULL)
for (thing in things) {
  print(thing)
}
[1] "M"
[1] "F"
NULL

答案 1 :(得分:4)

使用c()构造向量时,将忽略NULL值:

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

但是,如果通过NULL下游很重要,您可以使用list代替:

things <- list('M','F',NULL)
for (thing in things){
  print(thing)
}
[1] "M"
[1] "F"
NULL