我在读取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 $性别。
答案 0 :(得分:1)
没有数据,我无法测试这一点,看看我是否正在给你我认为你要求的东西。但是,这应该有效:
使用上面的代码创建新列后,请确保将所有旧列保持在一起。然后使用dplyr
,group_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())