如何使用mutate在资料框的一栏中找出两年之间的差额?

时间:2019-03-29 03:36:02

标签: r dplyr

嗨,我是R中的tidyverse的新手,正在尝试从事一个项目

我的数据框(ab):

 Year       Zip     Total_Population Median_Income      City State
1 2014      00601            18088         10833  Adjuntas    PR
2 2014      00602            40859         16353    Aguada    PR
3 2015      00603            53162         16323 Aguadilla    PR
4 2015      00606             6415         14138   Maricao    PR
5 2016      00610            28805         17265    Anasco    PR
6 2016      00612            66251         17752   Arecibo    PR

我使用mutate基于zip来创建人口与收入之比:

dmg_ratio <-  ab %>% filter(Year %in% c(2014,2015,2016,2017)) %>% 
  group_by(Zip) %>%
  mutate(Poptoincomeratio = Total_Population/Median_Income)

dmg_ratio

输出repex:

Year Zip           Total_Population Median_Income City      State Poptoincomeratio
 2014 ZCTA5 00601            18088         10833 Adjuntas    PR               1.67 
 2014 ZCTA5 00602            40859         16353 Aguada      PR               2.50 
 2015 ZCTA5 00601            53162         16323 Adjuntas    PR               3.26 

我想找出每个邮政编码在2014年至2016年之间新创建的突变(Poptoincomeratio)的差异,以了解这些年来人口与收入比率是否发生了变化。 我将如何做到这一点?

1 个答案:

答案 0 :(得分:0)

实际上,有一个解决方法,我假设您每年都填写“ Poptoincomeratio”列 然后,尝试这个

library(tidyr)
new_ab <- ab %>% select(-Total_Population ,-Median_Income ) %>% spread(Year,Poptoincomeratio)

此后,您可以再次应用mutate来获得两年之间的差额。