r - 合并和更新不存在的值
问题描述
我正在尝试合并两个数据框,这样如果 df1 的变量源中不存在任何列,则应该从 df2 的行中获取。我尝试了下面的合并,但没有奏效。请帮忙。
df1 <- data.frame(source = c("Pr1", "Pr2","Pr3"),
date = c("Jan 2018","Feb 2018","Mar 2018"),
Freq = c(100,20,30))
df2 <- data.frame(source = c("Pr1","Pr2","Pr1"),
date = c("Sep 2018","Aug 2018","Jan 2018"),
Freq = c(0,0,0))
df <- merge(df1,df2,by = c("source","date"))
预期输出:
source date Freq
1 Pr1 Jan 2018 100
2 Pr2 Feb 2018 20
3 Pr3 Mar 2018 30
4 Pr1 Sep 2018 0
5 Pr2 Aug 2018 0
解决方案
也许你可以设置all = TRUE
你使用merge
和申请aggregate
更新的时间,即
df <- aggregate(Freq~.,merge(df1,df2,all = TRUE),FUN = max)
这样
> df
source date Freq
1 Pr2 Feb 2018 20
2 Pr1 Jan 2018 100
3 Pr3 Mar 2018 30
4 Pr2 Aug 2018 0
5 Pr1 Sep 2018 0
推荐阅读
- mysql - MySQL - 数字列 desc 索引,最后显示 Null
- angular - 权限被拒绝使用 Firebase 身份验证登录
- python - 仅检测对 discord.py 中机器人发送的特定消息的反应
- azure-devops - 通过 OpenVpn 配置 CD
- r - 带引号的处理程序表达式的观察事件
- c# - 当视图聚焦在 UWP 上时,不应用 BackgroundColor
- node.js - UnhandledPromiseRejectionWarning: TypeError: model.byid is not a function
- gsl - 如何提高使用 GNU GSL 计算特征值的准确性
- perl - Perl 脚本如何知道它是否在调试器中运行?
- deno - drun 向我显示错误“尚未实施”