答案 0 :(得分:2)
首先你必须说出要组合的列,但考虑到dat是数据帧的名称,你可以这样做吗
dt <- data.frame(c(dat$V1,dat$V4,dat$V7),c(dat$V2,dat$V5,dat$V8),c(dat$V3,dat$V6,dat$V9))
然后使用names(dt) <- c("V1","V2","V3")
答案 1 :(得分:2)
使用rbind
的其他选项。
d <- seq(1, 27)
m <- matrix(d, nrow=3, byrow=TRUE)
然后m
看起来如下(模仿你的输入数据):
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] 1 2 3 4 5 6 7 8 9
[2,] 10 11 12 13 14 15 16 17 18
[3,] 19 20 21 22 23 24 25 26 27
然后你可以在输入的块上调用rbind
;对于更大的矩阵,您可能希望在for-loop
:
mnew = data.frame(rbind(m[, 1:3], m[ ,4:6], m[,7:9]))
names(mnew) <- c('V1', 'V2', 'V3')
产生所需的输出:
V1 V2 V3
1 1 2 3
2 10 11 12
3 19 20 21
4 4 5 6
5 13 14 15
6 22 23 24
7 7 8 9
8 16 17 18
9 25 26 27
答案 2 :(得分:1)
假设您的基本数据框名为df1 正如Orhan已经说过的那样,使用rbind,你必须拆分数据帧并重命名列:
a <- df1[1:3]
names(a) <- c("V1","V2", "V3")
b <- df1[4:6]
names(b) <- c("V1","V2", "V3")
c <- df1[7:9]
names(c) <- c("V1","V2", "V3")
df2<- rbind(a,b,c)
答案 3 :(得分:0)
可以通过将df更改为á矩阵然后使用rbind
df <- as.matrix(df)
df <- rbind(df[,1:3],df[,4:6],df[,7:9])
然后您可以选择使用as.data.frame()
将其转换回data.frame