【发布时间】:2019-08-23 15:27:53
【问题描述】:
我的数据格式如下:
#> country year value
#> 1 AUS 2019 100
#> 2 USA 2019 120
#> 3 AUS 2018 90
df <- data.frame(stringsAsFactors=FALSE,
country = c("AUS", "USA", "AUS"),
year = c(2019, 2019, 2018),
value = c(100, 120, 90)
)
我有一个单行数据框,它表示应该覆盖我数据中现有记录的修订。
#> country year value
#> 1 AUS 2019 500
df2 <- data.frame(stringsAsFactors=FALSE,
country = c("AUS"),
year = c(2018),
value = c(500)
)
我想要的输出是:
#> country year value
#> 1 AUS 2019 100
#> 2 USA 2019 120
#> 3 AUS 2018 500
我知道如何找到要覆盖的行:
library(tidyverse)
df %>% filter(country == overwrite$country & year == overwrite$year) %>%
mutate(value = overwrite$value)
但如何将其放回原始数据框中?
Tidyverse 的答案对我来说更容易使用,但我愿意接受任何解决方案。
【问题讨论】: