小编jer*_*ord的帖子

R - 如何根据数据框中一行中的值创建列的子集

我有一个矩阵,我想分组并最终用于制作情节.该数据是群体中每个患者的特定血液标记物的计数列表.它看起来像这样:

    df <- data.frame(MarkerID=c("Class","A123","A124"),
             MarkerName=c("","X","Y"),
             Patient.1=c(0,1,5),
             Patent.2=c(1,2,6),
             Patent.3=c(0,3,7),
             Patient.4=c(1,4,8))
Run Code Online (Sandbox Code Playgroud)

我想建立所有患者(第3-6列)的数据框,其类值为零(第1行),所有患者的第二个数据框的类值为1.

在过去,我使用子集函数根据列中的值选择行,是否可以根据行中的值选择列的子集?

我试过这个:

x <- subset(data, data[1,] == 0)
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时dim(x),列数相同dim(data)但行数不同.有关如何使其返回的任何想法只返回第1行中值为0的列?

罗兰,是的.你的例子是df是数据框的样子.数据框中有大约30,000个标记和> 400个患者,因此我没有发布dput(head(data)).感谢重塑小费,我会试一试.

您的示例代码确实可以根据行对列进行子集化

data[,c(TRUE,TRUE,data[1,-(1:2)]==1)]
Run Code Online (Sandbox Code Playgroud)

在数据上我然后能够获得包含所有行的数据框,并且只能获得具有指示类的列.

r subset dataframe

12
推荐指数
1
解决办法
5万
查看次数

标签 统计

dataframe ×1

r ×1

subset ×1