【发布时间】:2017-07-21 13:26:12
【问题描述】:
【问题讨论】:
-
看看
rbind -
请不要发布这样的数据。使用
?dput或纯文本复制/粘贴,以便我们可以将数据放入R会话中。
【问题讨论】:
rbind
?dput 或纯文本复制/粘贴,以便我们可以将数据放入R 会话中。
另一个使用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
【讨论】:
首先您必须说明要合并哪些列,但考虑到 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")重命名您的列
【讨论】:
rbind,你必须将你的数据框分成3个数据框,然后重命名列并使用rbind
假设您的基本数据框名为 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)
【讨论】:
这可以通过将 df 更改为 á 矩阵然后使用 rbind 来轻松执行
df <- as.matrix(df)
df <- rbind(df[,1:3],df[,4:6],df[,7:9])
然后您可以选择使用 as.data.frame() 将其转换回 data.frame
【讨论】: