如何更新行值并避免 R 中的重复项
How to update row-values and avoiding duplicates in R
我有以下两个数据框。第一个是包含大量观察结果的主数据框,第二个包含一个国家的更新值。下面显示了两个示例数据框:
df1 <- data.frame(country = c("A","A","B","B") , value = 1:4, date = as.Date(c("01-01-2000","01-02-2000","01-01-2000","01-02-2000"),"%d-%m-%Y"))
df2 <- data.frame(country = c("A","A","A","A") , value = c(1,2,7,8), date = as.Date(c("01-01-2000","01-02-2000","01-03-2000","01-04-2000"),"%d-%m-%Y"))
现在,我想使用第二个数据框来更新 df1 中的值。结果应如下所示:
df1
country value date
1 A 1 2000-01-01
2 A 2 2000-02-01
3 A 7 2000-03-01
4 A 8 2000-04-01
5 B 3 2000-01-01
6 B 4 2000-02-01
我是 R 的新手,所以我很感激任何帮助!这样做最有效的方法是什么?我已经尝试了一些方法,但无法找到一种快速而简洁的方法来做到这一点。非常感谢!
我相信这就是您要找的:
library(dplyr)
df1 %>%
full_join(df2) %>%
arrange(country)
# country value date
# 1 A 1 2000-01-01
# 2 A 2 2000-02-01
# 3 A 7 2000-03-01
# 4 A 8 2000-04-01
# 5 B 3 2000-01-01
# 6 B 4 2000-02-01
或
merge(df1, df2, all.x = TRUE, all.y = TRUE)
我有以下两个数据框。第一个是包含大量观察结果的主数据框,第二个包含一个国家的更新值。下面显示了两个示例数据框:
df1 <- data.frame(country = c("A","A","B","B") , value = 1:4, date = as.Date(c("01-01-2000","01-02-2000","01-01-2000","01-02-2000"),"%d-%m-%Y"))
df2 <- data.frame(country = c("A","A","A","A") , value = c(1,2,7,8), date = as.Date(c("01-01-2000","01-02-2000","01-03-2000","01-04-2000"),"%d-%m-%Y"))
现在,我想使用第二个数据框来更新 df1 中的值。结果应如下所示:
df1
country value date
1 A 1 2000-01-01
2 A 2 2000-02-01
3 A 7 2000-03-01
4 A 8 2000-04-01
5 B 3 2000-01-01
6 B 4 2000-02-01
我是 R 的新手,所以我很感激任何帮助!这样做最有效的方法是什么?我已经尝试了一些方法,但无法找到一种快速而简洁的方法来做到这一点。非常感谢!
我相信这就是您要找的:
library(dplyr)
df1 %>%
full_join(df2) %>%
arrange(country)
# country value date
# 1 A 1 2000-01-01
# 2 A 2 2000-02-01
# 3 A 7 2000-03-01
# 4 A 8 2000-04-01
# 5 B 3 2000-01-01
# 6 B 4 2000-02-01
或
merge(df1, df2, all.x = TRUE, all.y = TRUE)