根据一列重塑R中的数据帧
我有这样一个数据框:根据一列重塑R中的数据帧,r,dataframe,reshape,R,Dataframe,Reshape,我有这样一个数据框: TargetID Gene cg26365299 HOXA9 cg26476852 HOXA9 cg26492446 BHLHE23 cg26521404 HOXA9 cg26531174 CDX1 cg26595643 VAX1 我想把它做成这个形状 Gene TargetID HOXA9 cg26365299;cg26476852;cg265
TargetID Gene
cg26365299 HOXA9
cg26476852 HOXA9
cg26492446 BHLHE23
cg26521404 HOXA9
cg26531174 CDX1
cg26595643 VAX1
我想把它做成这个形状
Gene TargetID
HOXA9 cg26365299;cg26476852;cg26521404
BHLHE23 cg26492446
CDX1 cg26531174
VAX1 cg26595643
我尝试使用dcast,但它不起作用使用
aggregate
。考虑<代码> df>代码>是您的数据。框架:
> aggregate(TargetID~Gene, data=df, paste0, collapse=";")
Gene TargetID
1 BHLHE23 cg26492446
2 CDX1 cg26531174
3 HOXA9 cg26365299;cg26476852;cg26521404
4 VAX1 cg26595643
另一个使用
plyr
的选项:
ddply(df,.(Gene),summarise,TargetID=paste(TargetID,collapse=";"))
Gene TargetID
1 BHLHE23 cg26492446
2 CDX1 cg26531174
3 HOXA9 cg26365299;cg26476852;cg26521404
4 VAX1 cg26595643
另一种可能性
ll <- lapply(unstack(df), paste0, collapse = ";")
data.frame(TargetID = names(ll), Gene = unlist(ll), row.names = NULL)
# TargetID Gene
# 1 BHLHE23 cg26492446
# 2 CDX1 cg26531174
# 3 HOXA9 cg26365299;cg26476852;cg26521404
# 4 VAX1 cg26595643
谢谢!!它工作得很好@user976991很高兴有用,如果答案有助于您解决问题,您可以接受。