(編輯處理的相對尺度日期的重新調整)
有關使用reshape
什麼?
這是輸入數據:
> zz <- "Date UserID Var1 Var2
+ 2013-01 1 2 3
+ 2013-02 1 2 1
+ 2013-02 2 2 1"
> Data <- read.table(text=zz, header = TRUE)
這是重塑:
Data2 = reshape(Data[c(1,2,4)],direction='wide',timevar='Date',idvar='UserID')
在所得:
> Data2
UserID Var2.2013-01 Var2.2013-02
1 1 3 1
3 2 NA 1
(注意c(1,2,4)
是指對應的式柱號碼到Date
,UserID
和Var2
)
最後,以獲得所需的輸出,你可以簡單地移動NA
到每一行的末尾:
t(sapply(1:nrow(Data2), function(x) c(Data2[x,!is.na(Data2[x,])],rep(NA,sum(is.na(Data2[x,]))))))
,導致:
UserID Var2.2013-01 Var2.2013-02
[1,] 1 3 1
[2,] 2 1 NA
注意,這裏的列名不再是當前的。此外,您可能在矩陣的右側有隻包含NA的列......我會讓您處理這些小細節。
你想查找有關變量的統計信息,或者只是重新設計一個變量的數據(這就是你的例子所做的)? – rawr
@rawr - 我編輯澄清。希望有幫助。我想查找統計數據,但我想先重塑。 – Jeremy
@Jealie - 類似的東西,但數據全部按ID分組,而不是一次只顯示一個ID。 – Jeremy