我有下表:
NDVI_2009 NDVI_2010 NDVI_2011 NDVI_2012 NDVI_2013 SS_GROUP
-0.0280374 0.1810340 -0.0206186 -0.0319149 0.00529101 6
-0.0283019 0.1610170 -0.0452261 -0.0222222 0.00000000 3
-0.0864198 0.1026620 -0.0978723 -0.0710901 -0.09090910 5
-0.1192660 0.0762332 -0.1256280 -0.1340210 -0.12562800 5
-0.1250000 0.0701754 -0.1330050 -0.1269040 -0.12315300 6
-0.1181820 0.0810811 -0.1356780 -0.1370560 -0.13000000 6
-0.0280374 0.1810340 -0.0206186 -0.0319149 0.00529101 4
-0.0283019 0.1610170 -0.0452261 -0.0222222 0.00000000 4
-0.0864198 0.1026620 -0.0978723 -0.0710901 -0.09090910 5
-0.1192660 0.0762332 -0.1256280 -0.1340210 -0.12562800 2
-0.1250000 0.0701754 -0.1330050 -0.1269040 -0.12315300 1
-0.1181820 0.0810811 -0.1356780 -0.1370560 -0.13000000 1
现在我想将其重新排列为以下内容:
NDVI_GROUP SS_GROUP Value
NDVI_2009 1 0.08192981
NDVI_2009 1 -1.11667766
NDVI_2009 1 0.34117450
NDVI_2009 2 -0.42321236
NDVI_2009 2 0.56033804
NDVI_2009 2 0.32326817
...continuing
意思是:
第一栏=年
第二栏=组
第三栏=价值
按顺序递增。
首先是2009年第1组的所有值,然后是2009年第2组的所有值,依此类推。然后是2010年的同样......等等。
我只是找不到用R解决它的正确命令 有没有人可能会给我一个提示? 非常感谢...
谢谢, 汉纳斯
答案 0 :(得分:0)
这是一个问题,通常是来自" reshape2"的melt
。包:
library(reshape2)
X <- melt(mydf, id.vars="SS_GROUP")
X <- X[order(X$variable, X$SS_GROUP), c("variable", "SS_GROUP", "value")]
head(X) # View the first few rows
# variable SS_GROUP value
# 11 NDVI_2009 1 -0.1250000
# 12 NDVI_2009 1 -0.1181820
# 10 NDVI_2009 2 -0.1192660
# 2 NDVI_2009 3 -0.0283019
# 7 NDVI_2009 4 -0.0280374
# 8 NDVI_2009 4 -0.0283019