【发布时间】:2020-08-31 13:30:13
【问题描述】:
我正在尝试聚合数据框以删除重复的行,但我需要对计数列的值求和并将其用作该行值的新计数。我有以下数据框:
count freq cdr3nt cdr3aa v d j VEnd DStart DEnd JStart
3154 0.036110 TGTGCCA CASSE TRBV6-1 TRBD1 TRBJ2-6 13 18 22 24
2800 0.038394 TGTGCCA CASSE TRBV6-1 TRBD1 TRBJ2-6 13 18 22 24
2608 0.033014 TGTGCCA CASSE TRBV6-1 TRBD1 TRBJ2-6 13 18 22 24
412 0.004717 TGCGCCA CASMG TRBV10-2 TRBD1 TRBJ1-1 9 15 19 20
366 0.005015 TGCGCCA CASMG TRBV10-2 TRBD1 TRBJ1-1 9 15 19 20
310 0.004250 TGCAGTG CSARD TRBV20-1 TRBD1 TRBJ1-5 15 17 23 31
我需要解决这个问题:
count freq cdr3nt cdr3aa v d j VEnd DStart DEnd JStart
8562 0.048822 TGTGCCA CASSE TRBV6-1 TRBD1 TRBJ2-6 13 18 22 24
778 0.003332 TGCGCCA CASMG TRBV10-2 TRBD1 TRBJ1-1 9 15 19 20
310 0.004250 TGCAGTG CSARD TRBV20-1 TRBD1 TRBJ1-5 15 17 23 31
相反,我得到了这个:
count freq cdr3nt cdr3aa v d j VEnd DStart DEnd JStart
3 0.601110 TGTGCCA CASSE TRBV6-1 TRBD1 TRBJ2-6 13 18 22 24
2 0.506717 TGCGCCA CASMG TRBV10-2 TRBD1 TRBJ1-1 9 15 19 20
1 0.004250 TGCAGTG CSARD TRBV20-1 TRBD1 TRBJ1-5 15 17 23 31
这里有一段代码不能正常工作:
agg_df <- within(aggregate(count ~ cdr3nt + cdr3aa + v + d + j + VEnd + DStart +
DEnd + JStart, data = final_df,
FUN = length), freq <- count/sum(count))
agg_df1 <-select(agg_df, count, freq, cdr3nt, cdr3aa, v, d, j, VEnd, DStart, DEnd, JStart)
不是添加相应重复行的“计数”值,所以我可以重新计算频率,它基本上是计算特定行重复的次数。任何想法都非常感谢。谢谢。
【问题讨论】:
-
请提供代码以制作可重现的示例,查看
dput()函数
标签: r dataframe aggregate-functions