它们是行名,因此您可以使用
rownames()
要获取这些变量名:
rownames(train1_nzv_y0[train1_nzv_y0$zeroVar=="TRUE",])
这将返回一个包含“x1”、“x2”、“x3”、“x4”的字符向量:
代码
#install.packages("caret")
library(caret)
# Create example dataset
set.seed(123)
train1 <- data.frame(
y = sample(c("yes", "no"), 100, replace=TRUE),
x1 = c(rep(0, 50), rep(NA, 50)), # zero variance for "no" class
x2 = c(rep(0, 50), rep(1, 50)), # normal variance
x3 = c(rep(0, 50), rep(NA, 50)), # zero variance for "no" class
x4 = 1:100 # normal variance
)
train1_nzv_y0 <- nearZeroVar(train1[train1$y=="no",], saveMetrics= TRUE)
train1_nzv_y0[train1_nzv_y0$zeroVar=="TRUE",]
rownames(train1_nzv_y0[train1_nzv_y0$zeroVar=="TRUE",])
输出:
> train1_nzv_y0[train1_nzv_y0$zeroVar=="TRUE",]
freqRatio percentUnique zeroVar nzv
y 0 2.325581 TRUE TRUE
x1 0 2.325581 TRUE TRUE
x3 0 2.325581 TRUE TRUE
>
> rownames(train1_nzv_y0[train1_nzv_y0$zeroVar=="TRUE",])
[1] "y" "x1" "x3"