我有一个实验室实验的数据集。数据现在采用以下形式:
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/