小编Mul*_*gan的帖子

如何将列数据转换为列名?

我得到了一个光谱参考数据库,它与我使用的样本数据集非常不同。在我的数据中,0 或 1 表示是否存在峰值,而在参考数据库中,峰值位置被列为行值并根据肽数据(我不需要)分组为列。

我的数据集如下所示:

Sample   1110   1111   1112
1         1        0      0
2         1        0      1
3         0        1      1
4         1        1      1
Run Code Online (Sandbox Code Playgroud)

虽然参考数据库看起来像这样(注意每列的多个值):

Species     peptide1   peptide2    peptide3
cow           1110        1112         NA
sheep         1111        1112         NA
goat           NA         1113        1114
Run Code Online (Sandbox Code Playgroud)

所需的输出看起来类似于我的数据集:

Species   1110    1111    1112    1113    1114
cow         1        0      1        0      0
sheep       0        1      1        0      0
goat        0        0      0        1      1
Run Code Online (Sandbox Code Playgroud)

这些过于简单,但它们说明了问题——如果我需要提供实际数据,请告诉我。我需要对单元格中的值进行转置/排序,同时替换二进制中的原始值(同样,我不需要在参考数据库中保留肽列名称)。我真的希望有一个简单的 dplyr 或 tidyr 技巧 - 我想一个扩展函数可以工作,但我不知道如何为多列做这件事,也不知道如何保留原始数据。或者,我可以手动将所有数据附加为长格式,然后将其熔化/转换为更宽的格式?

r dataframe reshape2 dplyr tidyr

2
推荐指数
1
解决办法
120
查看次数

标签 统计

dataframe ×1

dplyr ×1

r ×1

reshape2 ×1

tidyr ×1