对R中的“未定义列选择”进行故障诊断

时间:2013-06-19 10:32:32

标签: r dataframe

我试图使用此命令

删除数据零方差的所有列
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 个答案:

答案 0 :(得分:10)

输入文件是一个CSV文件并通过read.csv命令读取,它在表的末尾有一个额外的空列导致了这个问题,通过这个命令删除了最后一列,解决了这个问题。 / p>

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