逐行将每个其他列的数组组织到一列中

时间:2017-07-03 13:25:42

标签: r

我在R中有以下数组:

    1    2    3    4    5    6    7    8    9    10    11    12
A   0    0.7  0.9  0.8  0    0    0    0    0    0.1   0     0.1
B   0.1  0.1  0    0.2  0    0.2  0.1  0    0    0.2   0     0.4
C   0    0.4  0.1  0.3  0    0    0.4  0    0    0.3   0     0

我想使用R代码将此数组放入一列。但我希望它从奇数列开始,逐行,然后返回并逐行进行偶数列。所以在这种情况下,将按顺序排列:

0,0.9,0,0,0,0,(行A,列1,3,5,7,9,11),然后在一个大列中依次为0.7,0.8等。

1 个答案:

答案 0 :(得分:0)

如果数组是矩阵m,那么......

t(m)[c(seq(1,length(m),2),
       seq(2,length(m),2))]

 [1] 0.0 0.9 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.1 0.0 0.0 0.0 0.1
[15] 0.0 0.4 0.0 0.0 0.7 0.8 0.0 0.0 0.1 0.1 0.1 0.2 0.2 0.0
[29] 0.2 0.4 0.4 0.3 0.0 0.0 0.3 0.0

只有拥有偶数列才能使用上述功能。在更一般的情况下,这可能更好......

c(t(m[,c(TRUE,FALSE)]),t(m[,c(FALSE,TRUE)]))