检查 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"