檢查 R 資料框中哪些列名包含特定字串。


如果我們有一個數據框,其中包含名稱中包含一些公共字串的列,那麼我們可能希望找到這些列名。為此,我們可以使用 grepl 函式進行子集化以及 colnames 函式。

檢視下面給出的示例,瞭解如何實現。

示例 1

以下程式碼片段建立了一個示例資料框 -

Students_Score<-sample(1:50,20)
Teachers_Rank<-sample(1:5,20,replace=TRUE)
Teachers_Score<-sample(1:50,20)
df1<-data.frame(Students_Score,Teachers_Rank,Teachers_Score)
df1

建立了以下資料框

  Students_Score Teachers_Rank Teachers_Score
 1          20            5             8
 2          28            1            26
 3          42            2            49
 4          25            2            11
 5           7            4            19
 6           4            5            37
 7          48            1             9
 8          33            4            35
 9          23            5            38
10          31            3            29
11          43            1             6
12           6            4            13
13          15            5            33
14           9            1            40
15          41            3            43
16          11            4            34
17          46            5            42
18          44            1 5
19          21            3 48
20          29            4 15

要檢查在上面建立的資料框中包含字串 Score 的 df1 的列,請將以下程式碼新增到上述程式碼片段中 -

Students_Score<-sample(1:50,20)
Teachers_Rank<-sample(1:5,20,replace=TRUE)
Teachers_Score<-sample(1:50,20)
df1<-data.frame(Students_Score,Teachers_Rank,Teachers_Score)
colnames(df1)[grepl("Score",colnames(df1))]

輸出

如果您將上面給出的所有程式碼片段作為單個程式執行,它將生成以下輸出 -

[1] "Students_Score" "Teachers_Score"

示例 2

以下程式碼片段建立了一個示例資料框 -

Hot_Temp<-sample(33:50,20,replace=TRUE)
Cold_Temp<-sample(1:10,20,replace=TRUE)
Group<-sample(c("First","Second","Third"),20,replace=TRUE)
df2<-data.frame(Hot_Temp,Cold_Temp,Group)
df2

建立了以下資料框

  Hot_Temp Cold_Temp Group
 1 47         7      First
 2 38         5      Third
 3 48         7      Third
 4 36        10      First
 5 46         6      Third
 6 45         2      First
 7 35        8       Second
 8 33        1       Second
 9 33        4       First
10 34        5       First
11 34        6       Third
12 39       10       Third
13 47       10       First
14 41        6       Third
15 48        3       First
16 36        2       Third
17 49        9       Second
18 35        5       Second
19 33        1       Second
20 49       10       Third

要檢查在上面建立的資料框中包含字串 Temp 的 df2 的列,請將以下程式碼新增到上述程式碼片段中 -

Hot_Temp<-sample(33:50,20,replace=TRUE)
Cold_Temp<-sample(1:10,20,replace=TRUE)
Group<-sample(c("First","Second","Third"),20,replace=TRUE)
df2<-data.frame(Hot_Temp,Cold_Temp,Group)
colnames(df2)[grepl("Temp",colnames(df2))]

輸出

如果您將上面給出的所有程式碼片段作為單個程式執行,它將生成以下輸出 -

[1] "Hot_Temp" "Cold_Temp"

示例 3

以下程式碼片段建立了一個示例資料框 -

x1_Rate<-sample(1:10,20,replace=TRUE)
x2_Rate<-sample(1:10,20,replace=TRUE)
Category<-sample(c("Normal","Abnormal"),20,replace=TRUE)
df3<-data.frame(x1_Rate,x2_Rate,Category)
df3

建立了以下資料框

  x1_Rate x2_Rate Category
 1    5        9  Normal
 2    8        8  Normal
 3    7       10  Normal
 4    3        3  Normal
 5    6        6  Normal
 6    4        9  Abnormal
 7    6        5  Abnormal
 8    2        9  Abnormal
 9    3       10  Abnormal
10    7        4  Abnormal
11    1        3  Normal
12    9       10  Abnormal
13    3        3  Normal
14    8       10  Abnormal
15    3        5  Normal
16    2        5  Abnormal
17    2        1  Normal
18    5        7  Abnormal
19    7        1  Abnormal
20    5        8  Normal

要檢查在上面建立的資料框中包含字串 Rate 的 df3 的列,請將以下程式碼新增到上述程式碼片段中 -

x1_Rate<-sample(1:10,20,replace=TRUE)
x2_Rate<-sample(1:10,20,replace=TRUE)
Category<-sample(c("Normal","Abnormal"),20,replace=TRUE)
df3<-data.frame(x1_Rate,x2_Rate,Category)
colnames(df3)[grepl("Rate",colnames(df3))]

輸出

如果您將上面給出的所有程式碼片段作為單個程式執行,它將生成以下輸出 -

[1] "x1_Rate" "x2_Rate"

更新於: 2021年11月10日

4K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

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