2013-06-19 116 views
4

我試圖刪除從我的數據的方差爲零的所有列,使用此命令故障排除「選擇未定義列」

file <- file[,sapply(file, function(v) var(v, na.rm=TRUE)!=0)] 

此命令可以正常使用了我以前的數據集,我現在想使用一個新的數據集,它給了我下面的錯誤:

Error in `[.data.frame`(file, , sapply(file, function(v) var(v, na.rm = TRUE) != : 
undefined columns selected 
In addition: Warning message: 
In var(v, na.rm = TRUE) : NAs introduced by coercion 

問題是我沒有選擇任何列,我剛剛應用的功能,所有列!我如何得到一個錯誤,告訴我選擇了未定義的列! 任何想法可能會出錯?

的數據看起來完全這樣

col1 col2 col3 col4 
1 FIA 3.5  2.4 NA 
2 DWF 2.1  NA  3.7 
3 LIK 0.25 2.3 1.38 
4 JUW 2.1  4.0 3.2 
+1

您的'col1'是最有可能的字符變量,因此將'var'應用於它將返回NA,並且事物從此處變成梨形。 –

+0

@HongOoi,我嘗試刪除第一列,但得到了相同的錯誤信息。此外,該命令適用的以前的數據集將第一列作爲字符。我真的找不到有什麼問題! – Error404

回答

10

輸入文件是一個CSV文件,並通過read.csv命令讀取,它必須在表的末尾一個額外的空柱造成這個問題,通過這個命令刪除最後一列,解決了這個問題。

lastcol <- ncol(file) 
file[,lastcol] <- NULL