【问题标题】:R: calculating growth/decay ratesR:计算增长/衰减率
【发布时间】:2020-08-31 06:52:28
【问题描述】:

我是 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。我想创建另一个数据集来计算每个城市的增长率。​​p>

我不确定如何将这个公式应用于我的数据。

谁能帮帮我?

谢谢。

【问题讨论】:

    标签: r


    【解决方案1】:

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

    %&gt;% 被称为管道。我们基本上将前一个表达式的结果“管道”到下一个表达式。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多