r - 合并和更改合并列的名称
问题描述
如何合并 2 个数据框,然后更改合并后的列名。请参见下面的示例。
> DF1
A B C
1 3 axe aa
2 6 base bb
3 9 lol cc
> DF2
D E F
1 6 ss gun
2 3 dd run
3 9 vv fun
> merge(x=DF1,y=DF2, by.x="A",by.y="D",all.x=TRUE)
A B C E F
1 3 axe aa dd run
2 6 base bb ss gun
3 9 lol cc vv fun
我的问题是如何将合并的 E 和 F 重命名为 AE 和 AF 所以应该是这样的。
A B C A.E A.F
3 axe aa dd run
6 base bb ss gun
9 lol cc vv fun
解决方案
我写了包safejoin,它非常简洁地解决了这个问题。
# devtools::install_github("moodymudskipper/safejoin")
library(safejoin)
eat(DF1, DF2, .by = c(A = "D"), .prefix = "A")
# A B C A_E A_F
# 1 3 axe aa dd run
# 2 6 base bb ss gun
# 3 9 lol cc vv fun
要获得完全预期的输出,我们可以在参数中使用任何重命名函数
.prefix
:
eat(DF1, DF2, .by = c(A = "D"), .prefix = ~paste0("A.",.))
# A B C A.E A.F
# 1 3 axe aa dd run
# 2 6 base bb ss gun
# 3 9 lol cc vv fun
eat
默认情况下是增强的左连接,该prefix
参数的设计正是为了满足您的需求。
推荐阅读
- watson-assistant - 在哪里查看 Watson Assistant 错误日志
- arrays - 将数组从主函数传递给C中的其他函数
- asp.net-core - 基于自定义角色的身份验证 .NET CORE
- c# - 使用在 Windows 10 IoT 核心上运行的 raspberrypi 从 RTC 模块获取日期和时间,并在 Windows 10 IoT 仪表板上显示日期时间
- angular - 输入属性绑定仅在超时后获取更改
- javascript - 通过按钮 onclick 或脚本更改字体
- css - 改变碧玉的颜色
- c# - OrderBy 仅在我的计算机上不起作用
- c++ - PC 重启后 Visual Studio Code 出现故障
- python - 在 Windows 上写入标准输出时使用什么换行符