2012-07-24 138 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