拆分R对象并进行匹配

时间:2017-03-08 21:08:26

标签: r

我在读取xlsx文件时制作了一个R对象,就像这样 -

 a = read.xlsx("Global_Manifest.xlsx", sheetIndex=1, colName=T) 
 a <- a[a$visit.1=="SCR" & a$processed.data.available == 1,]
 a$sampleName <- paste(a$best.response,a$subject,a$visit.1,"VAF=",a$AF)

$ sampleName的结果是这样的&#34; TM 700-666 SCR VAF = 0.46&#34;

然而,一旦我的分析完成,我想匹配a $ sampleName以获得每个结果的$性别信息。 Gender是Global_Manifest.xlsx文件中的标题之一。

这个想法是通过堆积的条形图来显示结果,以查看男性和女性受试者的结果概况之间的差异。

无论如何可以建议一种简单的方法来分割$ sampleName对象并匹配a $ best.response,$ subject,$ visit.1,$ AF,如果所有匹配,则得到a $性别。

1 个答案:

答案 0 :(得分:1)

没有数据,我无法测试这一点,看看我是否正在给你我认为你要求的东西。但是,这应该有效:

使用上面的代码创建新列后,请确保将所有旧列保持在一起。然后使用dplyrgroup_by

创建一个表格
b<- group_by(a , best.response, subject, visit, AF, VAF, gender)

这将为您提供一个表格,其中包含您要一起评估的所有5列,并将它们分为男性和女性。拥有该表后,您可以像使用任何其他数据表一样使用它。

如果您重复b,每个VAF和性别都会有一行,您可以再次使用该子集:

b<-unique(b)
b[,c("VAF","gender")]

这应该返回一个子集,其中只包含您创建的VAF复合键以及与之关联的gender。如果你真的想要计算每个中有多少个,而不是将uniques然后用子集管道group_by语句到summarize()

b<- group_by(a , best.response, subject, visit, AF, VAF, gender)%>%
summarize(count=n())