加入具有不同列名的数据框(tibble)
Join dataframe (tibble) with different column names
我正在寻找一个 dplyr 解决方案来合并 dplyr 中的两个 df(或 tibble),当它们具有相同的长度但列名不同时。
目前我找到的解决方案 relate to a common column 名称,通过 by = ""
字段加入。
结构:
df1
A B
1 4
2 2
df2
C D
4 1
3 4
期望的输出:
df
A B C D
1 4 4 1
2 2 3 4
你可以试试这个:
library(data.table)
setDT(df1,keep.rownames=T); setDT(df2,keep.rownames=T)
df3 <- df1[df2,on="rn"]
df3 <- subset(df3, select = -c(rn))
方法取自 。
编辑
你可以用 dplyr
达到类似的效果
df1$rn <- seq.int(nrow(df1))
df2$rn <- seq.int(nrow(df2))
df3 <- full_join(df1, df2, by = rn)
我正在寻找一个 dplyr 解决方案来合并 dplyr 中的两个 df(或 tibble),当它们具有相同的长度但列名不同时。
目前我找到的解决方案 relate to a common column 名称,通过 by = ""
字段加入。
结构:
df1
A B
1 4
2 2
df2
C D
4 1
3 4
期望的输出:
df
A B C D
1 4 4 1
2 2 3 4
你可以试试这个:
library(data.table)
setDT(df1,keep.rownames=T); setDT(df2,keep.rownames=T)
df3 <- df1[df2,on="rn"]
df3 <- subset(df3, select = -c(rn))
方法取自
编辑
你可以用 dplyr
df1$rn <- seq.int(nrow(df1))
df2$rn <- seq.int(nrow(df2))
df3 <- full_join(df1, df2, by = rn)