R:计算增长率/衰退率

  • 本文关键字:退率 增长率 计算 r
  • 更新时间 :
  • 英文 :


我是R的新手,我正在努力弄清楚一些东西。

我有一个标题为City, YearPopulation的数据集,我已经将其导入RStudio。

我的样本数据看起来像:

(Melbourne, 2005, 5000)
(Melbourne, 2010, 4000) 
(Adelaide, 2005, 3000) 
(Adelaide, 2010, 9000)

我希望能够创建另一个数据集,显示2005年至2010年按城市分组的增长率。例如,如果2005年墨尔本的人口为5000人,2010年墨尔本人口为4000人,则增长率为(4000-5000(/5000(=-0.2。我想创建另一个数据集,计算出每个城市的增长率。

我不知道如何在我的数据中实现这个公式。

有人能帮我吗?

谢谢。

您可以使用包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  

(%>%被称为管道。我们基本上将前一个表达式的结果"管道"到下一个表达式中。(

最新更新