2013-05-11 48 views
4

在我看過的投影的許多用途中,使用了平均等聚合函數。如何在沒有聚合的情況下使用「投射」重塑

如果您只是想在不丟失信息的情況下重新塑形,那麼該如何? 例如,如果我想利用這個長格式:

ID  condition Value 
John a   2 
John a   3 
John b   4 
John b   5 
John a   6 
John a   2 
John b   1 
John b   4 

對此寬幅無任何聚集:

ID a b 
John 2 4 
John 3 5 
Alex 6 1 
Alex 2 4 

我想,這是假設的觀測配對,你人失蹤價值會搞砸,但任何見解表示讚賞

+2

兩件事情:1。您的寬格式與長格式數據不匹配,因爲'Alex'沒有以長格式顯示。 2.你怎麼知道'a == 2'和'b == 4''走在一起而不是'a == 2'和'b == 5'或者其他值的組合?我猜你沒有顯示一列表明一個實驗或其他標識符... – Chase 2013-05-11 22:26:49

+0

@我的猜測是,他們只有兩行,每個ID *條件組合。但來自aleph4的更多信息不會傷害... – Dason 2013-05-11 22:36:31

回答

6

在這種情況下,你可以添加一個序列號:

library(reshape2) 

DF$seq <- with(DF, ave(Value, ID, condition, FUN = seq_along)) 
dcast(ID + seq ~ condition, data = DF, value.var = "Value") 

最後一行給出:

ID seq a b 
1 John 1 2 4 
2 John 2 3 5 
3 John 3 6 1 
4 John 4 2 4 

(請注意,我們使用的樣本輸入,從這個問題,但在討論的採樣輸出不符合樣品輸入。)

相關問題