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