提取R資料框中列名包含特定字串的列。


要提取R資料框中列名包含特定字串的列,我們可以使用grepl函式對列名進行匹配,然後使用單方括號對資料框進行子集選擇。

例如,如果我們有一個名為df的資料框,並且我們想要提取名稱中包含X的列,那麼我們可以使用下面提到的命令:

df[grepl("X",colnames(df))]

示例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              37             3             42
2              50             4             15
3               8             5             21
4              29             3             35
5              10             5              3
6               2             2             41
7              12             4             29
8               1             4             44
9              41             2             10
10             39             3             39
11             27             3             43
12             18             1             48
13             44             5             12
14             21             4             16
15             16             3             20
16             45             5             50
17             17             1             31
18             49             1             30
19             47             5             17
20             32             5              8

為了提取上面建立的資料框中df1的列名包含Score的列,請將以下程式碼新增到上述程式碼片段中:

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[grepl("Score",colnames(df1))]

輸出

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

 Students_Score Teachers_Score
1            37             42
2            50             15
3             8             21
4            29             35
5            10              3
6             2             41
7            12             29
8             1             44
9            41             10
10           39             39
11           27             43
12           18             48
13           44             12
14           21             16
15           16             20
16           45             50
17           17             31
18           49             30
19           47             17
20           32              8

示例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         4  Third
2       33         5  First
3       36         2  Second
4       35         8  Second
5       33         8  First
6       44         1  Third
7       33         8  Third
8       46         3  First
9       36         3  Third
10      44         6  First
11      43        10  Third
12      35         9  First
13      36         4  Third
14      44         5  Second
15      48         5  Second
16      37         6  Second
17      35         5  Second
18      42         4  First
19      40         4  Second
20      42         4  Third

為了提取上面建立的資料框中df2的列名包含Temp的列,請將以下程式碼新增到上述程式碼片段中:

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[grepl("Temp",colnames(df2))]

輸出

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

 Hot_Temp Cold_Temp
1     47         4
2     33         5
3     36         2
4     35         8
5     33         8
6     44         1
7     33         8
8     46         3
9     36         3
10    44         6
11    43        10
12    35         9
13    36         4
14    44         5
15    48         5
16    37         6
17    35         5
18    42         4
19    40         4
20    42         4

更新於: 2021年11月1日

4K+ 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.