2014-03-03 49 views
1

所以我有一個帶有兩個向量的數據框。時間和團隊。如何按因子分割數據框然後通過ID變量合併

df <- data.frame(time=rep(seq(1:3),3), team=LETTERS[rep(1:3,each=3)]) 

> time team 
>1 1 A 
>2 2 A 
>3 3 A 
>4 1 B 
>5 2 B 
>6 3 B 
>7 1 C 
>8 2 C 
>9 3 C 

如何按時間分割數據幀然後按時間合併回來?像這樣的東西。

> time df.A df.B df.C 
>1 1 A B C 
>2 2 A B C 
>3 3 A B C 

我想出如何採用分體式或dlply分裂data.frame,但我還沒有使用任何cbind成功或合併來獲取數據幀重新走到一起。

此外,每個(分割)列表的長度都不同,所以任何幫助將NA添加到混音中的功能也將不勝感激。謝謝。

+0

你的預期輸出你的輸入是不可能的,因爲'time'和'team'是完全共線的。 – Thomas

+0

哎呀,對不起。剛剛更新了輸入df以反映更改。 – Richard

+0

您還需要更新代碼。 – Thomas

回答

2

您可以使用reshape此:

> df$tmp <- df$team 
> reshape(df, idvar='time', timevar='team', direction='wide') 
    time tmp.A tmp.B tmp.C 
1 1  A  B  C 
2 2  A  B  C 
3 3  A  B  C 
+0

謝謝托馬斯,這很好。 – Richard

相關問題