在R的另一列的行尾添加观察结果

时间:2016-08-09 17:01:58

标签: r dataframe

我有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

2 个答案:

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