作者kostella (kostella)
看板R_Language
標題[問題] 新手的類別加總問題
時間Sat May 20 14:45:13 2017
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
新手(沒寫過程式,R 是我的第一次)
[問題敘述]
假設資料如下
invoice country rev
1 uk 20
1 uk 15
2 hk 13
2 hk 12
3 tw 9
4 uk 30
4 uk 50
每一筆資料代表一項商品的售出
而相同invoice代表位於同一訂單中
我要算出的是
「各個國家訂單的rev平均為何」
我欲先將同invoice的rev加總
再依country進行計算
爬文看到了版上高手g大提供的
tapply(as.numeric(x[,"數值"]),x[,"類別"],sum)
能將同invoice的rev加總
但卻會忽略了contury的資料
無法繼續運算下去QQ
請問有甚麼方法可以解決嗎?
謝謝版上各位高手!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.6.60
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1495262716.A.40C.html
1F:→ cywhale: 你式子中的sum改mean, 類別改country 應該可以吧~ 05/20 15:08
這樣變成計算各國家的Rev平均,還要將同invoice的併在一起>”<有沒有辦法能夠合併兩欄資料且保留另一欄數據呢?
※ 編輯: kostella (1.164.6.60), 05/20/2017 15:36:30
2F:→ cywhale: 你是要aggregate(rev~country+invoice, data=x,FUN=mean) 05/20 16:17
3F:→ locka: dplyr的group_by(data, invoice, country) %>% summarise(m 05/20 19:43
4F:→ locka: ean(rev))這樣呢? 05/20 19:43
5F:推 Edster: 這個條件:"而相同invoice代表位於同一訂單中"被忽略了 05/20 22:14
6F:推 Edster: 用c大的寫法, res~invoice+country, Fun=sum 05/20 22:20
7F:→ Edster: 再做一次 rev~country, Fun = mean 這樣應該就可以了 05/20 22:20
8F:→ kostella: 我終於成功做出來了QQ~~~~超級感謝各位大大的幫忙! 05/20 23:34