如何从 R 数据框中仅提取因子列名称?
要从 R 数据框中仅提取因子列名称,我们可以使用名称函数配合条件过滤(仅通过 as.factor 选择因子列)。例如,如果我们有一个名为 df 的数据框,它包含一些因子列,那么可以通过使用 names(Filter(is.factor,df)) 来提取这些因子列的名称。
考虑以下数据框 –
示例
x1<-factor(sample(c("Male","Female"),20,replace=TRUE)) x2<-rpois(20,5) df1<-data.frame(x1,x2) df1
输出
x1 x2 1 Female 4 2 Male 7 3 Male 9 4 Female 3 5 Male 10 6 Female 4 7 Female 2 8 Female 1 9 Female 6 10 Female 7 11 Female 5 12 Male 5 13 Male 6 14 Female 4 15 Male 7 16 Male 3 17 Male 2 18 Male 4 19 Male 9 20 Female 6
提取因子列 df1 的名称 −
names(Filter(is.factor,df1))
[1] "x1"
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
示例
y1<-rnorm(20) y2<-rnorm(20,524,32.14) y3<-factor(sample(c("Hot","Cold"),20,replace=TRUE)) df2<-data.frame(y1,y2,y3) df2
输出
y1 y2 y3 1 1.14683171 494.4162 Hot 2 0.91868842 580.5509 Hot 3 -0.17573235 534.0396 Cold 4 -0.02975191 488.0148 Cold 5 -0.26811263 492.4373 Hot 6 0.66937789 458.3491 Hot 7 0.47413241 488.5430 Cold 8 0.28988748 495.5700 Hot 9 -0.29068059 509.0902 Cold 10 -0.88108903 484.8437 Hot 11 -0.33612356 535.9354 Hot 12 0.40103781 510.7365 Hot 13 -0.92194471 521.3352 Hot 14 1.25918659 520.2907 Hot 15 -1.22533456 443.9293 Cold 16 1.81055353 494.4451 Hot 17 0.43367087 530.8559 Cold 18 1.63945140 489.3504 Cold 19 -1.55321040 541.3161 Cold 20 -1.02131445 510.2723 Cold
提取因子列 df2 的名称 −
names(Filter(is.factor,df2))
[1] "y3"
广告