首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并和更改合并后的列名

合并和更改合并后的列名
EN

Stack Overflow用户
提问于 2019-02-28 16:57:57
回答 1查看 79关注 0票数 0

如何合并2个数据框,然后更改合并后的数据框的列名?请参见下面的示例。

代码语言:javascript
复制
> 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重命名为A.E和A.F,因此应该是这样的。

代码语言:javascript
复制
      A  B    C   A.E A.F
      3  axe  aa  dd  run
      6  base bb  ss  gun
      9  lol  cc  vv  fun
EN

回答 1

Stack Overflow用户

发布于 2019-03-03 08:47:13

我编写了包,它非常简洁地解决了这个问题。

代码语言:javascript
复制
# 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参数中使用任何重命名函数:

代码语言:javascript
复制
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参数正是为满足您这样的需求而设计的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54921763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档