如何根据R数据框中的列名对行值进行子集化?

要根据 R 数据框中的列名对行值进行子集化,我们可以按照以下步骤操作 -

  • 首先,创建一个数据框。

  • 然后,使用 seq_len 函数以相同的方式创建大小等于数据框中行数和行名称的列名样本,然后使用 cbind 函数根据列名对行进行子集化。

创建数据框

让我们创建一个数据框,如下所示 -

例子

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

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

输出

  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

根据列名对行进行子集

使用示例函数以与 seq_len 函数相同的方式创建示例列名和行名,然后使用 cbind 函数根据使用示例函数创建的列名对行进行子集 -

例子

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"

以上是 如何根据R数据框中的列名对行值进行子集化? 的全部内容, 来源链接: utcz.com/z/335621.html

回到顶部