如何在 R 数据框中根据列名筛选行值?


为了根据列名筛选 R 数据框中的行值,我们可以按照以下步骤操作:

  • 首先,创建一个数据框。
  • 然后,使用 `sample` 函数创建大小等于数据框行数的列名样本,并以同样的方式使用 `seq_len` 函数创建行名,之后使用 `cbind` 函数根据使用 `sample` 函数创建的列名筛选行。

创建数据框

让我们创建一个如下所示的数据框:

 在线演示

Gender_1<-sample(c("Male","Female"),20,replace=TRUE)
Gender_2<-sample(c("Male","Female","Unknown"),20,replace=TRUE)
df<-data.frame(Gender_1,Gender_2)
df

执行上述脚本后,将生成以下输出(由于随机化,此输出在您的系统上可能会有所不同):

  Gender_1 Gender_2
1 Female Female
2 Female Female
3 Male Male
4 Male Male
5 Male Male
6 Male Female
7 Female Male
8 Female Female
9 Male Male
10 Female Male
11 Male Female
12 Female Male
13 Male Female
14 Female Female
15 Female Male
16 Female Female
17 Female Female
18 Female Female
19 Male Unknown
20 Female Female

根据列名筛选行

使用 `sample` 函数创建列名样本,并以同样的方式使用 `seq_len` 函数创建行名,之后使用 `cbind` 函数根据使用 `sample` 函数创建的列名筛选行:

 在线演示

Gender_1<-sample(c("Male","Female"),20,replace=TRUE)
Gender_2<-sample(c("Male","Female","Unknown"),20,replace=TRUE)
df<-data.frame(Gender_1,Gender_2)
Columns<-sample(c("Gender_1","Gender_2"),20,replace=TRUE)
rownames(df)<-seq_len(nrow(df))
df[cbind(rownames(df),Columns)]

输出

[1] "Female" "Female" "Male" "Male" "Male" "Female" "Female" "Female"
[9] "Male" "Female" "Female" "Female" "Male" "Female" "Female" "Female"
[17] "Female" "Female" "Male" "Female"

更新于: 2021年8月13日

501 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告