我需要把這個如何轉置/將兩個變量轉換爲一行?
id | amount | day
---------------------
A | 10 | 0
A | 54 | 8
A | 23 | 18
A | 43 | 28
A | 87 | 51
B | 34 | 0
B | 76 | 1
B | 12 | 7
這個
id | a1 | a2 | a3 | a4 | a5 | d1 | d2 | d3 | d4 | d5
--------------------------------------------------------
A | 10 | 54 | 23 | 43 | 87 | 0 | 8 | 18 | 28 | 51
B | 34 | 76 | 12 | 0 | 0 | 0 | 1 | 7 | 0 | 0
即。通過id轉置/將df的行轉換爲未知數量的列,將零置於由於長度不等而存在空值的位置。
我已經嘗試了
df <- data.frame(id=c('A','A','A','A','A','B','B','B'), amount=c(10,54,23,43,87,34,76,12), day=c(0,8,18,28,51,0,1,7))
library(reshape2)
x <- dcast(df, id ~ day, mean, value = 'amount')
但它並不完全正確。我該怎麼做?
+1大家好用! – agstudy
@agstudy,謝謝。我認爲'as.numeric'部分實際上不是必需的。 – A5C1D2H2I1M1N2O1R2T1