2013-07-11 73 views
1

我有以下數據集:移調數據

prod month count 
sub12 2012-06 566 
sub1 2012-06 10239 
sub6 2012-06 524 
sub12 2012-07 2360 
sub1 2012-07 13853 
sub6 2012-07 2352 
sub12 2012-08 3950 
sub1 2012-08 14738 
sub6 2012-08 4104 

我想有這樣的:

prod 2012-06 2012-07 
sub12 566   2360 
sub1 10239  13853 
sub6 524   2352 

我已經運行以下命令行:

aperm(table(data)) 
data.frame(table(data)) 

但我得到錯誤的結果。

我錯在哪裏?

+2

你不想轉置,你想重塑/鑄造。 – Roland

回答

4

搜索「重塑長寬」。

data <- read.table(text="prod month count 
sub12 2012-06 566 
sub1 2012-06 10239 
sub6 2012-06 524 
sub12 2012-07 2360 
sub1 2012-07 13853 
sub6 2012-07 2352 
sub12 2012-08 3950 
sub1 2012-08 14738 
sub6 2012-08 4104",header=TRUE) 

library(reshape2) 
dcast(prod~month,data=data) 
# prod 2012-06 2012-07 2012-08 
# 1 sub1 10239 13853 14738 
# 2 sub12  566 2360 3950 
# 3 sub6  524 2352 4104 
0

與基礎R堅持,你可以使用xtabs

> xtabs(count ~ prod + month, data) 
     month 
prod 2012-06 2012-07 2012-08 
    sub1 10239 13853 14738 
    sub12  566 2360 3950 
    sub6  524 2352 4104 

如果你喜歡一個data.frame作爲輸出,包你xtabsas.data.frame.matrix

> as.data.frame.matrix(xtabs(count ~ prod + month, data)) 
     2012-06 2012-07 2012-08 
sub1 10239 13853 14738 
sub12  566 2360 3950 
sub6  524 2352 4104 
+0

或'重塑(數據,方向=「寬」,idvar =「prod」,timevar =「月」)'。 – Roland

+0

@Roland,但是隨後有了這樣的評論,你可以破壞獲得10個答案的樂趣,以達到同樣的目的!現在... [亞倫在哪裏](http://stackoverflow.com/a/9617424/1270695)? – A5C1D2H2I1M1N2O1R2T1