楼主:
Wush978 (拒看低质媒体)
2016-04-08 01:11:02这个问题只用dplyr就可以了:
early <-
filter(df, stage == "early") %>%
group_by(Firm, year) %>%
summarise(early = n())
later <-
filter(df, stage == "later") %>%
group_by(Firm, year) %>%
summarise(later = n())
full_join(early, later)
这应该就是你要的!
另外一个给新手的小建议, dplyr 设计的API, 可以解决许多实务问题
这背后是有一些代数理论的支持的.
长久以来SQL在数据库的成功也证实这套API可以解决许许多多的问题
ps. dplyr的API设计等价于SQL
所以往这方向练习应该是没错
※ 引述《atomo (Mr.Wu)》之铭言:
:
: ctrl + y 可以删除一整行,请将不需要的内容删除
: [问题类型]:
:
: 程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
:
: [软件熟悉度]:
: 请把以下不需要的部份删除
: 新手(没写过程式,R 是我的第一次)
: [问题叙述]:
: 原始资料:
: Firm stage year
: A early 2012
: A early 2012
: A later 2012
: A later 2013
: B early 2012
: B early 2013
: B early 2013
: B later 2012
: C early 2013
: C early 2013
: C later 2013
: .......
: 想让资料会按公司名称和年度去计算当年度的early以及later的数目
: 想变成:
: Firm year early later
: A 2012 2 1
: A 2013 0 1
: B 2012 1 0
: B 2013 2 0
: C 2013 2 1
: 不好意思,刚开始使用r 不太清楚如何叙述问题和写程式码,目前是使用dplyr的
: group_by 和 n() 两个来练习不知道方向有无错误,谢谢有任何需要补充的我在补充
: [环境叙述]:
:
: R version 3.2.3 (2015-12-10)
: Platform: x86_64-apple-darwin13.4.0 (64-bit)
: Running under: OS X 10.11.3 (El Capitan)
:
: [关键字]:
:
: 合并资料 计算个数
: