如何从 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"

更新于: 2021 年 2 月 6 日

超过 1 千次浏览

开启您的 职业生涯

完成课程并获得认证

开始学习
广告