如何仅从R数据框中提取因子列名称?

要仅从R数据框中提取因子列名称,可以通过使用as.factor仅选择因子列来将名称函数与Filter结合使用。例如,如果我们有一个名为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的名称-

名称(Filter(is.factor,df1))

[1] "x1"

示例

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的名称-

名称(Filter(is.factor,df2))

[1] "y3"