在R中合并两个数组

时间:2013-08-23 16:38:13

标签: arrays r merge

假设我有两个数组,array1和array2,看起来像

ARRAY1

        45    46   47    48    49    50
        1.0   1.5  1.3   1.2   0.9   1.1

数组2

        45    46   47    48    49    50
        2.5   5.5  4.5   5.8   1.5   8.4

我希望将它们合并到一个类似于以下内容的数据框中:

       1.0  2.5
       1.5  5.5
       1.3  4.5
       1.2  5.8
       0.9  1.5
       1.1  8.4

数字45到50并不重要。

3 个答案:

答案 0 :(得分:11)

 array1 <- c(1.0,1.5,1.3,1.2,0.9,1.1)
 array2 <- c(2.5,5.5,4.5,5.8,1.5,8.4)

 result = cbind(array1, array2)

如果您不想查看任何列名或行名(如问题中所述),则应执行以下操作:

 result = as.matrix(cbind(array1, array2)) 
 dimnames(result) <-list(rep("", dim(result)[1]), rep("", dim(result)[2]))

你得到:

 > result

  1.0 2.5
  1.5 5.5
  1.3 4.5
  1.2 5.8
  0.9 1.5
  1.1 8.4

答案 1 :(得分:1)

您应该能够合并?rbind?t,或者只使用?cbind,具体取决于您的数据格式。

例如:

new.array <- t(rbind(array1,array2))

new.array <- cbind(array1,array2)

new.arrray <- data.frame(array1,array2)

如果你有两个向量,cbind是最好的方法。但是,假设您有两个数据帧。即:

array1 <- t(data.frame(array1=c(1.0,1.5,1.3,1.2,0.9,1.1)))
array2 <- t(data.frame(array2=c(2.5,5.5,4.5,5.8,1.5,8.4)))

使用cbind无法提供所需的输出,您需要合并trbind

> cbind(array1,array2)
       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
array1    1  1.5  1.3  1.2  0.9  1.1  2.5  5.5  4.5   5.8   1.5   8.4

> t(rbind(array1,array2))
     array1 array2
[1,]    1.0    2.5
[2,]    1.5    5.5
[3,]    1.3    4.5
[4,]    1.2    5.8
[5,]    0.9    1.5
[6,]    1.1    8.4

答案 2 :(得分:-2)

您可以通过下面给定的代码合并到数组,并可以显示所需的格式。

            for (int i = 45; i <=50; i++)
            {

                float[] merge = { array1[i], array2[i] };

            }
           // to display in required format

            for (int j =0; i <merge.Length; i++)
            {

                Console.WriteLine(merge[i]);

            }