我有900行和400列的数据。每两列都包含特定信息。让我说,有一个A B C D列,我想在A和B列的末尾附加C和C列。
例如:
A B C D E F
3 4 5 6 7 8
9 10 11 12 13 14
更改为
Column 1 Column 2
3 4
9 10
5 6
11 12
7 8
13 14
答案 0 :(得分:2)
您可以通过将原始zed.txt
的奇数和偶数列堆叠为2个新列来创建新的data.frame
。
df
答案 1 :(得分:0)
假设o
全部为数字,请转换为矩阵:
o <- read.table(text='A B C D E F
3 4 5 6 7 8
9 10 11 12 13 14', header=TRUE)
o <- as.matrix(o)
首先,你实际上有一对列,所以这可以被认为是一个3D数组。我们可以就地重塑为3d:
dim(o) <- c(2,2,3)
所以o
看起来像这样:
> o
, , 1
[,1] [,2]
[1,] 3 4
[2,] 9 10
, , 2
[,1] [,2]
[1,] 5 6
[2,] 11 12
, , 3
[,1] [,2]
[1,] 7 8
[2,] 13 14
使用aperm移动索引,并dim<-
重塑,我们可以非常接近:
>`dim<-`(aperm(o, c(3,1,2)), c(6,2))
[,1] [,2]
[1,] 3 4
[2,] 5 6
[3,] 7 8
[4,] 9 10
[5,] 11 12
[6,] 13 14
如果你真的想要它完全在上面的2d顺序,你需要一个转置:
> t(`dim<-`(aperm(o, c(2,1,3)), c(2,6)))
[,1] [,2]
[1,] 3 4
[2,] 9 10
[3,] 5 6
[4,] 11 12
[5,] 7 8
[6,] 13 14