插入另一列的值

时间:2017-07-21 13:26:12

标签: r datatable

如何组合列的值?像这样:

enter image description here

预期产出:

enter image description here

4 个答案:

答案 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