如何在 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"
广告