2017-03-08 123 views
0

我做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的结果是这样的“以旧换新700-666 SCR VAF = 0.46 “

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

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

难道无论如何都建议一种简单的方法来拆分$ sampleName对象并与$ best.response,$ subject,$ visit.1,$ AF匹配,并且如果所有匹配都获得$ $ gender 。

+1

寻求帮助时,你应该包括[reproduicble示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)与样品在问题iteself中输入数据。这使得它更容易帮助你。目前还不清楚为什么当你已经拥有'a'中的所有其他列时,你需要对sampleName值进行deparse。下一步你想要执行什么?给出所需的输出。 – MrFlick

回答

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。如果您实际上想要统计每个参数的数量,而不是采用唯一身份验证,然后将管道group_by声明归入summarize()

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