作者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/cn.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