我有数据框(GDPPerCap),其中包含Year,Country.Code和GDPperCapita列。例如:
Year Country.Code GDPperCapita
1960 AUS 15,000
1960 USA 20,000
1960 ARG 8,000
.
.
.
2018 USA 60,000
我想为特定国家/地区(例如美国)设置新列,以使该值等于该行的GDPPerCapita变量,减去2018年美国的GDPperCapita。(最终,我想设置循环,以便为每个不同的国家/地区代码创建一个相似的列。
我尝试使用mutate:
GDPPerCap <- GDPPerCap %>%
mutate(USA_Difference = GDPperCapita - GDPperCapita[Country.Code == "USA", Year == "2018"])
我希望它实现:
Year Country.Code GDPperCapita USA_Difference
1960 AUS 15,000 -45,000
1960 USA 20,000 -40,000
1960 ARG 8,000 -52,000
.
.
.
2018 USA 60,000 0
抱歉,这是我的第一篇文章,还没有完全提到。但是希望你能理解我的观点。
答案 0 :(得分:0)
您可以通过这样做获得2018年美国的人均GDP
ismember
然后您提供的代码应该可以使用
USA2018 <- GDPPerCap %>% filter(Country.Code=="USA",Year == 2018) %>% pull(GDPperCapita)
# Note: if Year is in character format you might have to do Year == "2018" instead
答案 1 :(得分:0)
您可以使用向量并将其直接分配给表
GDPPerCap$USA_Difference <- as.numeric(paste(GDPPerCap$GDPperCapita))-as.numeric(paste(GDPPerCap[GDPPerCap$Year=="2018" & GDPPerCap$Country.Code =="USA",3]))