我正在使用一个非常巨大的.csv数据集进行评估,但我有这个错误要解决。
Warning in preProcess.default(data, method = c("center", "scale")) :
These variables have zero variances: num_outbound_cmds, is_host_login
Error in do_one(nmeth) : NA/NaN/Inf in foreign function call (arg 1)
排除数据集whose variance is zero (0)
中变量的最快方法是什么?
3条答案
按热度按时间nbnkbykc1#
R包
caret
有一个函数nearZeroVar
,它可以很好地识别矩阵或数据框中方差为零或接近零的列,它将索引作为向量返回,可以使用该向量删除这些列。moiiocjp2#
使用@Dthal的示例,
base R
选项将使用Filter
上面的工作原理是将0的方差转换为FALSE,将所有其他值转换为TRUE,并将
Filter
仅转换为返回TRUE的列。如果有
NA
(不使用任何外部软件包)bz4sfanl3#
如果你的目标是
tidyverse
,并且这将仅在移除
NA
之后计算方差。如果你也想保留
b
列,也就是说,把NA
也看作是变量的一部分,你可以用any
替换掉all
,然后执行