提取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+ 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告