排除R中方差为零的变量的最快方法

Des*_*gos 1 r k-means

我正在使用一个非常大的.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)
Run Code Online (Sandbox Code Playgroud)

在数据集中排除变量的最快方法是什么whose variance is zero (0)?

Dth*_*hal 5

R包caret具有一项功能nearZeroVar,可以很好地识别方差为零或接近零的矩阵或数据框中的列。它以向量的形式返回索引,可用于删除这些列。

> df <- data.frame(a=1:5, b=sample(1:5), c=rep(1,5))
> df
  a b c
1 1 4 1
2 2 2 1
3 3 1 1
4 4 5 1
5 5 3 1
> nearZeroVar(df)
[1] 3
> df[,-nearZeroVar(df)]
  a b
1 1 4
2 2 2
3 3 1
4 4 5
5 5 3
Run Code Online (Sandbox Code Playgroud)