我有一个长数据格式的数据集:
Date Region X Y Z T D E F
01-01-2020 RegionA 2 4 2 3 2 3 4
01-01-2020 RegionB 1 3 2 2 3 3 3
01-01-2020 RegionC 1 4 4 2 3 4 2
01-01-2020 RegionD 2 4 2 3 2 4 4
01-01-2020 RegionE 1 3 2 2 2 2 2
02-01-2020 RegionA 2 4 7 3 2 3 4
02-01-2020 RegionB 1 3 2 2 2 3 3
02-01-2020 RegionC 1 4 4 8 3 4 2
02-01-2020 RegionD 2 3 2 3 2 4 4
02-01-2020 RegionE 1 3 2 2 2 2 2
日期还有很多,但这应该让您对格式有所了解。
然后我有第二个数据集,其中包含有关这些地区人口的更多信息:
Region Pop
RegionA 2000
RegionB 4039
RegionC 24728
RegionD 3738
RegionE 2936
我想要做的是将第一个数据集中的一列除以每个地区的人口值,跨越所有日期。例如,如果“x”是GDP
我想除以GDP
每个不同时间点的总体值。对于RegionA
这将是2/2000
和2/2000
对于每个01-01-2020
和02-01-2020
。
我对 R 很陌生,任何帮助开始解决这个问题都会很棒。
这里有一个可重现的例子
date<-as.Date(c("2020-02-24T18:00:00", "2020-02-24T18:00:00", "2020-02-
24T18:00:00", "2020-05-02T17:00:00", "2020-05-02T17:00:00",
"2020-05-02T17:00:00"))
regions<-c("RegionA", "RegionB", "RegionC","RegionA", "RegionB", "RegionC")
total<-c(1394, 1143, 18373, 168479, 65370, 26990)
df<-data.frame(date, regions, total)
对于另一个数据框:
regions<-c("RegionA", "RegionB", "RegionC")
pop<-c(1305283, 559084, 1935414)
mydf_pop<-data.frame(regions, pop)
现在:我尝试了各种组合
df >%>
left_join(mydf_pop)>%>
group_by(date, regions)>%>
mutate(total/pop)
这显然是错误的。
谢谢你。