2015-07-28 175 views
2

我有一個數據幀與價值觀:彙總數據

x y value 
A B 10 
B A 15 
A C 5 
C A 10 
B C 20 

df <- data.frame(x = c("A", "B", "A", "C", "B"), 
       y = c("A", "A", "C", "A", "C"), 
       value = c(10, 15, 5, 10, 20)) 

我想這個數據彙總到Xÿ每個組合,每位值的總和組合。其結果將是:

x y value 
A B 25 
A C 15 
B C 20 

我發現這個question這或多或少是同樣的問題,因爲我有。但解決方案不適用於我的情況。這是因爲xy中的值是字符串,而min()max()將不起作用。

任何想法如何做到這一點?

+1

提供的數據集和可重複的代碼各不相同 –

回答

3

一種選擇是sort行的前兩列和替換它,使用aggregate由團「X」和「Y」得到「價值」的sum

df[1:2] <- t(apply(df[1:2], 1, sort)) 
aggregate(value~., df, sum) 
# x y value 
# 1 A B 25 
# 2 A C 15 
# 3 B C 20 
+2

寫的完全相同,但無法獲得所需的輸出。顯然OP顯示並給出了不同的數據集。這看起來像一個愚蠢的人雖然 –

+0

@DavidArenburg我有同樣的問題,但後來我複製了顯示的數據,並得到了正確的答案。可能是他有一個錯字。當然,它看起來像一個笨蛋。 – akrun

+1

好吧,再次搜索你的答案,得到一個愚蠢的 –