我有以下列格式中的R的數據幀:傳播行索引爲列中的R
> old.dat
id type minDate maxDat eventNum
1 001 A may june 1
2 002 B apr oct 1
3 002 C may nov 2
4 002 B july dec 3
我想打開行轉換成列,基於eventNum
。最大eventNum
是3,所以如果某些ID只有1 eventNum
,我希望它們填充NA
。
目標:
id type1 minDate1 maxDat1 eventNum1 type2 minDate2 maxDat2 eventNum2 type3 minDate3 maxDat3 eventNum3
1 001 A may june 1 <NA> <NA> <NA> NA <NA> <NA> <NA> NA
2 002 B apr oct 1 C may nov 2 B july dec 3
下面是一個代碼塊的起點帶來。
old.dat <- data.frame(id = c("001","002","002","002"),
type = c("A","B","C","B"),
minDate = c("may","apr","may","july"),
maxDat = c("june", "oct", "nov", "dec"),
eventNum = c(1,1,2,3))
我寫了一個for循環,但其相當慢,其花費很長的時間,通過我的數據集的流失,所以任何速度的建議將是巨大的。謝謝!
你的目標是相當多的我能想象最糟糕的格式...無論如何,data.table和reshape2/tidyr都提供了重塑的功能。試試看。 – Roland