我在R(标题大写)中加载了一个这类(但更大)的表格:
https://postimg.org/image/66qmiayj5/
有没有人知道如何使用以下方法制作此表的子集:
答案 0 :(得分:0)
您可以使用rowSums
。举个例子:
df <- data.frame('GENES'=1:3,'STRAIN_1'=c(TRUE,TRUE,FALSE),'STRAIN_2'=c(TRUE,TRUE,FALSE),'STRAIN_3'=c(TRUE,FALSE,TRUE))
> df
GENES STRAIN_1 STRAIN_2 STRAIN_3
1 1 TRUE TRUE TRUE
2 2 TRUE TRUE FALSE
3 3 FALSE FALSE TRUE
您可以按以下方式对数据集进行子集化。
> df[rowSums(df[,-1])==1,]
GENES STRAIN_1 STRAIN_2 STRAIN_3
3 3 FALSE FALSE TRUE
> df[rowSums(df[,-1])==2,]
GENES STRAIN_1 STRAIN_2 STRAIN_3
2 2 TRUE TRUE FALSE
请注意,df[,-1]
用于排除第一列,rowSums(df[,-1])
检索每行TRUE
的数量。
答案 1 :(得分:0)
尝试使用filter
的{{1}}命令。有一些方法可以在不创建新列的情况下执行此操作,但我想明确了解此代码中的内容。
dplyr