我是R的新手,我想弄清楚一些东西。
我有一个导入了RStudio的标题为City, Year
和Population
的数据集。
我的样本数据如下:
(Melbourne, 2005, 5000)
(Melbourne, 2010, 4000)
(Adelaide, 2005, 3000)
(Adelaide, 2010, 9000)
我希望能够创建另一个数据集,以显示2005年至2010年之间按城市分组的增长率。例如,如果墨尔本的2005年人口为5000,而墨尔本的2010年人口为4000,则增长率为((4000-5000)/ 5000)= -0.2。我想创建另一个数据集,计算出每个城市的增长率。 p>
我不确定如何对数据执行此公式。
有人可以帮我吗?
谢谢。
答案 0 :(得分:3)
您可以使用软件包dplyr
:
df <- data.frame(city = c("Melbourne", "Melbourne", "Adelaide", "Adelaide"),
year = c(2005, 2010, 2005, 2010),
pop = c(5000,4000,3000,9000))
df %>%
group_by(city) %>%
arrange(year) %>%
mutate(growth = (pop-lag(pop))/lag(pop))
# A tibble: 4 x 4
# Groups: city [2]
city year pop growth
<chr> <dbl> <dbl> <dbl>
1 Melbourne 2005 5000 NA
2 Adelaide 2005 3000 NA
3 Melbourne 2010 4000 -0.2
4 Adelaide 2010 9000 2
({%>%
被称为管道。我们基本上将前一个表达式的结果“管道”到下一个表达式中。)