2012-07-24 137 views
4

我想遍历一个向量并将值作为参数发送给函数。我想发送的其中一个值是NULL。这是我一直在尝试的循环遍历包含NULL的向量

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

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

回答

8

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

不能在矢量中混合类型,因此不能在同一个矢量中同时使用"character""NULL"类型。改用列表。

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

你是对的,我没有检查矢量,看看NULL是否真的存在。谢谢! – blindjesse 2012-07-24 20:24:32

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