“故障排除”;未定义的列已选定";在R

“故障排除”;未定义的列已选定";在R,r,dataframe,R,Dataframe,我试图使用此命令从数据中删除所有方差为零的列 file <- file[,sapply(file, function(v) var(v, na.rm=TRUE)!=0)] 问题是我没有选择任何列,我只是将该函数应用于所有列!为什么我会得到一个错误,告诉我未定义的列被选中! 你知道会出什么问题吗 数据看起来正是这样 col1 col2 col3 col4 1 FIA 3.5 2.4 NA 2 DWF 2.1 NA 3.7

我试图使用此命令从数据中删除所有方差为零的列

file <- file[,sapply(file, function(v) var(v, na.rm=TRUE)!=0)]
问题是我没有选择任何列,我只是将该函数应用于所有列!为什么我会得到一个错误,告诉我未定义的列被选中! 你知道会出什么问题吗

数据看起来正是这样

    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

输入文件是一个CSV文件,通过read.CSV命令读取,导致此问题的表格末尾有一个额外的空列,通过此命令删除最后一列,解决了此问题

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

lastcol您的
col1
很可能是一个字符变量,因此对其应用
var
将返回
NA
,然后事情就从那里变成了梨形。@HongOoi,我尝试删除第一列,但得到了相同的错误消息。此外,该命令用于的以前的数据集的第一列为字符。我真的找不出有什么不对!
lastcol <- ncol(file)
file[,lastcol] <- NULL