检查 R 数据框中哪些列名包含特定字符串。

r programmingserver side programmingprogramming

如果我们有一个数据框,其中包含具有一些常见字符串名称的列,那么我们可能想要找到这些列名。为此,我们可以使用 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] "学生分数" "教师分数"

示例 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"

相关文章