我试图使用此命令
删除数据零方差的所有列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
答案 0 :(得分:10)
输入文件是一个CSV文件并通过read.csv命令读取,它在表的末尾有一个额外的空列导致了这个问题,通过这个命令删除了最后一列,解决了这个问题。 / p>
lastcol <- ncol(file)
file[,lastcol] <- NULL