【发布时间】:2021-07-17 05:41:09
【问题描述】:
我获得了一个光谱参考数据库,该数据库与我使用的样本数据集非常不同。在我的数据中,0 或 1 表示是否存在峰值,而在参考数据库中,峰值位置被列为行值,并根据肽数据分组为列(我不需要)。
我的数据集如下所示:
Sample 1110 1111 1112
1 1 0 0
2 1 0 1
3 0 1 1
4 1 1 1
虽然参考数据库看起来像这样令人讨厌(注意每列有多个值):
Species peptide1 peptide2 peptide3
cow 1110 1112 NA
sheep 1111 1112 NA
goat NA 1113 1114
所需的输出看起来类似于我的数据集:
Species 1110 1111 1112 1113 1114
cow 1 0 1 0 0
sheep 0 1 1 0 0
goat 0 0 0 1 1
这些过于简单,但它们说明了问题 - 如果我需要提供实际数据,请告诉我。我需要对单元格中的值进行转置/排序,同时替换二进制文件中的原始值(同样,我不需要将肽列名称保留在参考数据库中)。我真的希望有一个简单的 dplyr 或 tidyr 技巧 - 我想传播函数可以工作,但我不知道如何为多列执行此操作,也不知道如何保留原始数据。或者,我可以手动将所有数据附加为长格式,然后将其融化/转换为更宽的格式?
【问题讨论】:
-
@RonakShah 我已经用它更新了问题!
标签: r dataframe dplyr tidyr reshape2