我想将两个数据框组合成R中的两列:
以下是两个数据框的示例:
数据框XY:
X Y
x1 y1
x2 y2
x3 y3
x4 y4
x5 y5
数据框XZ:
X Z
x1 z1
x2 z2
x3 z3
x4 z4
x5 z5
我希望结果是一个看起来像这样的数据框:
X YZ
x1 y1
x2 y2
x3 y3
x4 y4
x5 y5
x1 z1
x2 z2
x3 z3
x4 z4
x5 z5
以下是上述示例数据框中R的代码:
x <- c("x1", "x2", "x3", "x4", "x5")
y <- c("y1", "y2", "y3", "y4", "y5")
z <- c("z1", "z2", "z3", "z4", "z5")
XY <- data.frame(x,y)
XZ <- data.frame(x,z)
我尝试过rbind()但运气不好。合并仅通过添加列来合并数据帧。我真的不确定如何解决这个问题。
答案 0 :(得分:4)
您可以尝试重命名列名称,如下所示:
names(XY)<- c("x","yz")
names(XZ)<- c("x","yz")
new <- rbind(XY,XZ)
> new
x yz
1 x1 y1
2 x2 y2
3 x3 y3
4 x4 y4
5 x5 y5
6 x1 z1
7 x2 z2
8 x3 z3
9 x4 z4
10 x5 z5
我希望它有所帮助。
我相信为了使用rbind,你需要拥有相同的列名。
答案 1 :(得分:2)
值得一提的是,rbind
中的data.table
功能具有您想要的功能:
library(data.table)
xy = data.table(XY)
xz = data.table(XZ)
rbind(xy, xz, use.names = F)
# or convert them to `data.table` on the fly
.rbind.data.table(XY, XZ, use.names = F)
# x y
# 1: x1 y1
# 2: x2 y2
# 3: x3 y3
# 4: x4 y4
# 5: x5 y5
# 6: x1 z1
# 7: x2 z2
# 8: x3 z3
# 9: x4 z4
#10: x5 z5
答案 2 :(得分:0)
如果你想要每个x值的Y和Z值,那么你可以像这样使用完全外部合并: XYZ&lt; - merge(x = XY,y = YZ,by =“x”,all = TRUE)
否则,您可以简单地按行将两个数据框绑定为:
XYZ <- rbind(XY, YZ)