2017-08-17 64 views
0

我在互聯網上閱讀了很多內容,但沒有找到解決方案。我有這個data.frame:將行中的數據幀從長變換爲寬

d <- data.frame(cat = letters[11:15], count = c(1:10)) 
e <- data.frame(cat = letters[11:15], count = c(11:20)) 
G <- rbind(d, e) 

    cat count 
1 k  1 
2 l  2 
3 m  3 
4 n  4 
5 o  5 
6 k  6 
7 l  7 
8 m  8 
9 n  9 
10 o 10 
11 k 11 
12 l 12 
13 m 13 
14 n 14 
15 o 15 
16 k 16 
17 l 17 
18 m 18 
19 n 19 
20 o 20 

現在我想將數據幀轉換爲寬,但計數值需要在行這樣的:

cat k l m n o 
    1 2 3 4 5 
    6 7 8 9 10 
    11 12 13 14 15 
    16 17 18 19 20 

我不知道,怎麼去做吧。先謝謝你。

+0

你有你的數據集的另一列,以確定哪些值去哪個排在你的最終結果?否則,我不確定在每列中確定值的順序的邏輯是什麼。例如。在'k'列中,c(16,11,6,1)將與c(1,6,11,16)一樣有效...... –

+0

cat k,l,m,n和o代表賬戶號碼一個日記帳,而計數是會計事務的實際數字。因此,該期刊按行收集所有交易,現在我想收集所有賬戶號爲k的交易,並將它們放入一個名爲k的新列中。所有其他帳號都相同。對於你最後一個問題,順序可以用原始數據的順序來描述,所以c(1,6,11,16)就可以了。 –

回答

1

我們可以使用unstack

unstack(G, count~cat) 
相關問題