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

示例

 線上演示

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 千次瀏覽

開啟您的 職業生涯

完成課程並獲得認證

開始學習
廣告
© . All rights reserved.