r - 根据条件使用另一个值的值更新数据框中的整个列

标签 r dataframe join dplyr merge

我有两个数据框,我希望组合唯一值并单独更新现有记录的列值,而不是添加新记录。

DF1<-data.frame(name = c("Test1","Test2","Test3"),
                Value = c(10,20,30),
                Remarks = c("Good","Best","Perfect")
)
DF2<- data.frame(name = c("Test","Test2","Test3","Test4"),
                 Value = c(10,22,30, 40),
                 Remarks = c("Good","Best","Perfect","NEW"))

我已经尝试过

DF3 <- unique(bind_rows(x = DF1, y = DF2))

结果是

   name Value Remarks
1 Test1    10    Good
2 Test2    20    Best
3 Test3    30 Perfect
4  Test    10    Good
5 Test2    22    Best
7 Test4    40     NEW

但我渴望实现

   name Value Remarks
1 Test1    10    Good
2 Test2    **22**    Best
3 Test3    30 Perfect
4  Test    10    Good
5 Test4    40     NEW

对于现有值,我希望更新而不是添加新记录。

最佳答案

我们可以使用rows_upsert

library(dplyr)
rows_upsert(DF1, DF2)

-输出

   name Value Remarks
1 Test1    10    Good
2 Test2    22    Best
3 Test3    30 Perfect
4  Test    10    Good
5 Test4    40     NEW

关于r - 根据条件使用另一个值的值更新数据框中的整个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74959113/

相关文章:

r - 访问 X[Y, j] 中 j 中具有重复名称的 Y 列合并

java - 在 Android 应用程序中使用 Java 中的 R

c++ - 在 R 包中强制重建源代码

r - R中带有逻辑索引和 "which"的问题

python - 我想以更好的结构打印输出

mysql - 如何提前使用JOIN MySQL查询

python - 将选择的列堆叠为 pandas 数据框中的行

python - pandas DataFrame.drop 函数中的整数参数

php - 忽略 MySQL JOIN 查询中的空结果

python - 从列表中提取某些元素