r - 如何重新排列/操作数据?

标签 r data-manipulation

我有一个实验室实验的数据集。数据现在采用以下形式:

ColumnID Soiltype Treatment Concentration1 Concentration2 Concentration3
1        Oh       Control   29             31             34
2        LOf      Treatment 100            99             94
3        Oh       Treatment 80             83             78

如何操作数据,使其如下所示:

ColumnID Soiltype Treatment Concentration
1        Oh       Control   29
1        Oh       Control   31
1        Oh       Control   34
2        LOf      Treatment 100
2        LOf      Treatment 99
2        LOf      Treatment 94
3        Oh       Treatment 80
3        Oh       Treatment 83
3        Oh       Treatment 78

接下来我可以尝试什么?

最佳答案

这属于将数据 reshape 为长格式的一般类别(供您将来的 google-fu 引用):

library(reshape2)

melt(df, id.var = c('ColumnID', 'Soiltype', 'Treatment'),
         value.name = "Concentration")
#  ColumnID Soiltype Treatment       variable Concentration
#1        1       Oh   Control Concentration1            29
#2        2      LOf Treatment Concentration1           100
#3        3       Oh Treatment Concentration1            80
#4        1       Oh   Control Concentration2            31
#5        2      LOf Treatment Concentration2            99
#6        3       Oh Treatment Concentration2            83
#7        1       Oh   Control Concentration3            34
#8        2      LOf Treatment Concentration3            94
#9        3       Oh Treatment Concentration3            78

删除额外的列和排序留给读者。

关于r - 如何重新排列/操作数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21419258/

相关文章:

r - 根据给定变量识别连续序列

R - 将 SD 区域添加为正态分布的虚线

r - R中没有 "multiple match vector"函数吗?

r - 基于 ifelse 在旧数据表上创建新数据表

javascript - 在 JavaScript 中使用 Array.map 删除元素

arrays - 与不同 ID 关联的查找和求和值

.net - 保护程序集免受黑客攻击

python - 无法将一个标题下的值转移到另一个标题下

python - 使用python将邻接列表转换为稀疏邻接矩阵

r - 删除具有nan值的行