我有一個矩陣(d),看起來像:如何重塑一個矩陣
d <-
as.matrix(read.table(text = "
month Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13
X10 10 7.04 8.07 9.4 8.17 9.39 8.13 9.43 9.06 8.59 9.37 9.79 8.47 8.86
X11 11 12.10 11.50 12.6 13.70 11.90 11.50 13.10 17.20 19.00 14.60 13.70 13.20 16.10
X12 12 24.00 22.00 22.2 20.50 21.60 22.50 23.10 23.30 30.50 34.10 36.10 37.40 28.90
X1 1 18.30 16.30 16.2 14.80 16.60 15.40 15.20 14.80 16.70 14.90 15.00 13.80 15.90
X2 2 16.70 14.40 15.3 14.10 15.50 16.70 15.20 16.10 18.00 26.30 28.00 31.10 34.20",
header=TRUE))
從Q1將Q31(其天每月)。我想得到的是:
month day Q
10 1 7.04
10 2 8.07
等31天和12個月。
我曾嘗試使用下面的代碼嘗試:
reshape(d, direction="long", varying = list(colnames(d)[2:32]), v.names="Q", idvar="month", timevar="day")
,但我得到的錯誤:
Error in d[, timevar] <- times[1L] : subscript out of bounds
誰能告訴我什麼是錯誤的代碼?我真的不明白關於「重塑」的幫助文件,這有點令人困惑......謝謝!
對於'reshape()',爲了正確處理'vary'中的列名,這仍然需要一個'sep =「」'... – 2012-01-31 18:48:03
謝謝!它完美地工作(沒有sep =「」) – sbg 2012-01-31 19:58:21
@ JoshO'Brien,因爲'v.names'被指定,'reshape'沒有試圖確定原始列名的名字,所以不需要'sep'。 – 2012-01-31 21:45:24