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

Err*_*404 4 r dataframe

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

file <- file[,sapply(file, function(v) var(v, na.rm=TRUE)!=0)]
Run Code Online (Sandbox Code Playgroud)

这个命令对我之前的数据集非常有效,现在我正在尝试在新的数据集上使用,它给出了以下错误:

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
Run Code Online (Sandbox Code Playgroud)

问题是我没有选择任何列,我只是将函数应用于所有列!为什么我会收到一个错误,告诉我选择了未定义的列!什么可能出错?

数据看起来就是这样

    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
Run Code Online (Sandbox Code Playgroud)

Err*_*404 10

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

lastcol <- ncol(file)
file[,lastcol] <- NULL
Run Code Online (Sandbox Code Playgroud)