我有三个数据框,例如,第一个数据框具有变量x1
,x2
,x3
。第二个具有y1
,y2
,y3
,最后一个具有z1
,z2
,z3
列。我想按以下顺序创建一个数据框:
x1 y1 z1 x2 y2 z2 x3 y3 z3
x1 <- c(1:10)
x2 <- c(1:10)
x3 <- c(11:20)
x <- data.frame(cbind(x1,x2,x3))
y1 <- c(1:10)
y2 <- c(1:10)
y3 <- c(11:20)
y <- data.frame(cbind(y1,y2,y3))
z1 <- c(1:10)
z2 <- c(1:10)
z3 <- c(11:20)
z <- data.frame(cbind(z1,z2,z3))
这三个数据帧有更多列(15),我想要一个带有一列,第二个带有秒......
答案 0 :(得分:3)
假设每个数据框中的行数相等,则可以cbind
行,删除字符并使用order
df <- cbind(df1, df2, df3)
df[, order(gsub("[A-Za-z]", "", names(df)))]
# x1 y1 z1 x2 y2 z2 x3 y3 z3
#1 1 1 1 6 6 6 11 11 11
#2 2 2 2 7 7 7 12 12 12
#3 3 3 3 8 8 8 13 13 13
#4 4 4 4 9 9 9 14 14 14
#5 5 5 5 10 10 10 15 15 15
数据
df1 <- data.frame(x1 = 1:5, x2 = 6:10, x3 = 11:15)
df2 <- data.frame(y1 = 1:5, y2 = 6:10, y3 = 11:15)
df3 <- data.frame(z1 = 1:5, z2 = 6:10, z3 = 11:15)