2013-11-01 39 views
1

如何檢查R數據幀是否爲空?看看這個代碼。我想修改它,所以它不會產生錯誤或警告。檢查數據幀本身是否NA

x = sample(1:2,1) 
d = NA 
if(x == 1) { 
    d = data.frame("h"=c(1,2),"q"=c(2,3)) 
} 

#check if data frame is NA 
if(is.na(d)) { 
    print("d is NA") 
} 

如果x == 1,然後正常工作沒有任何警告,否則,如果x == 2下面給出警告

Warning message: 
In if (is.na(d)) { : 
    the condition has length > 1 and only the first element will be used 
+0

是否你的意思是,如果'X == 2'它工作正常?如果你只是想禁止警告,你可以使用'suppressWarnings'。如果'd =矩陣(rep(NA,4),nrow = 2)',你希望函數返回什麼? – Hugh

回答

4

無論在主題行的,它看起來像你真的要檢查如果d是數據幀或其他東西。

if(is.data.frame(d)) { 
    # do something sensible with a data frame 
} 
else print("d is not a data frame!") 
2

您可以設置dNULL

d <- NULL 

,然後檢查is.null(d)

+1

爲什麼投這個建議? – ndr

+1

+1 - 正是我會建議。 NULL是IMHO更合適的* undefined *變量。 – flodel

+0

我沒有downvote,但我的第一讀是暗示'd < - NULL'然後'is.null(d)'這是荒謬的(總是爲真)。它也不適用於'd = NA'。 – Hugh