如何从数据框中为符合多个相同条目的条件的列中的值进行子集化?

时间:2015-09-09 18:33:50

标签: r subset

我有一个如下所示的数据集:

   uniprot site netphorest
1   C9J0A7  169   0.064921
3   C9J0A7  169   0.063045
4   C9J0A7  169   0.055366
9   C9J0A7  169   0.055366
10  C9J0A7  169   0.055366
11  C9J0A7  169   0.055577
14  C9J0A7  169   0.054875
15  C9J0A7  169   0.054875
16  C9J0A7  169   0.054875
22  C9J0A7  169   0.430742
23  C9J0A7  169   0.430742

同一个uniprot标识符和修改站点的多个条目,但每个条目具有多个netphorest分数(由特定酶修改的可能性)和超过42,000个观察值。基本上我想为特定的uniprot /站点行选择最高分。

我试图做这样的事情(1hCX是我的数据框)

CX1href <- subset.data.frame(CX1h, netphorest = max)

我试图根据netphorest列中的最大变量对行进行子集化,但是,我的新数据框仍然包含与原始数据帧相同数量的条目。不知道如何解决这个问题,因为我有多个条目具有相同的uniprot代码和站点号...

我尝试了这个并得到了这个错误:

CX1href <- aggregate.data.frame(netphorest = ~ uniprot + site, CX1h, FUN = mean, max)
Error in aggregate.data.frame(netphorest = ~uniprot + site, CX1h, FUN = mean,  : 
'by' must be a list

1 个答案:

答案 0 :(得分:0)

例如,你可以使用:

aggregate(CX1h$netphorest, list(CX1h$uniprot,ddd$site), max)

(编辑:正如评论中所建议的)

或使用with()which()ave()max()的组合来对具有最大虚拟价值值的行进行子集化。