我如何从一列中获取行值,并根据不同的列值将它们分开,以“ sep”分隔?

问题描述 投票:1回答:1

我正在使用蛋白质组数据并测试分析软件版本之间的差异。我们想要一个表格,让我们知道蛋白质在什么版本的软件中显示。

下面是我当前拥有的数据表的简化版本:

Version Protein.ID Protein name
1.1     A          name 1
1.2     A          name 1
1.1     B          name 2
1.2     B          name 2

我希望我的桌子看起来像这样:

Version   Protein.ID Protein name
1.1, 1.2  A          name 1
1.1, 1.2  B          name 2

我已经在这里和网上寻找了2天,找不到解决方案。

我曾尝试使用传播和汇总,但均无济于事。我要么有大量的列,要么是缺少我想要的信息的单个列。我尝试使用一些基本的R命令(如粘贴),但无法消除重复的值。

我尝试过的例子:

allver.mergeVerID <- spread(allver.ids, Protein.ID, Ver.ID.Porder)
Error: Each row of output must be identified by a unique combination of keys. 
Keys are shared for 5311 rows:

我也使用]收到此错误>

allver.mergeVerID <- allver.ids %>% group_by(Protein.ID) %>% 
  summarise(Ver.ID.Porder= toString(Ver.ID.Porder), )

OR

allver.mergeVerID <- aggregate(Ver.ID.Porder ~ Protein.ID, allver.ids, toString)

此错误是什么意思?

我正在使用蛋白质组数据并测试分析软件版本之间的差异。我们希望有一个表格,让我们知道蛋白质在哪个版本中……

r dplyr tidyverse tidy
1个回答
0
投票

这里是一种方法。通过'Protein.ID'分组后,通过summarise将元素组合在一起paste'版本'

© www.soinside.com 2019 - 2024. All rights reserved.