r - 根据 R 中其他 2 列的值减去特定值
问题描述
我有数据框(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
抱歉,这是我的第一篇文章,还没有完全确定。但希望你明白我的意思。
解决方案
您可以通过以下方式获得 2018 年美国的人均 GDP
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
那么您提供的代码应该可以工作
GDPPerCap <- GDPPerCap %>%
mutate(USA_Difference = GDPperCapita - USA2018)