拆分R中第n个向量中的向量列表

时间:2018-04-10 17:22:30

标签: r list vector

我在R中有一个列表,里面有三个向量,每个向量都有32个数字元素。

我想分割这个列表,这样我就可以得到32个长度为3的向量,每个向量对应列表中三个向量的三个第一个元素,三个向量的三个第二个元素,依此类推。

说,我的清单有这方面:

$`1`
 [1] 0.00000000 0.00000000 0.00000000 0.01538462 0.01538462 0.01538462 0.01538462 0.13846154 0.00000000 0.00000000
[11] 0.00000000 0.03076923 0.00000000 0.01538462 0.04615385 0.20000000 0.00000000 0.01538462 0.00000000 0.04615385
[21] 0.00000000 0.00000000 0.01538462 0.15384615 0.00000000 0.01538462 0.00000000 0.01538462 0.01538462 0.01538462
[31] 0.03076923 0.18461538

$`2`
 [1] 0.00000000 0.00000000 0.00000000 0.01428571 0.00000000 0.01428571 0.02857143 0.11428571 0.00000000 0.01428571
[11] 0.00000000 0.05714286 0.00000000 0.01428571 0.02857143 0.20000000 0.00000000 0.00000000 0.00000000 0.01428571
[21] 0.00000000 0.01428571 0.02857143 0.17142857 0.01428571 0.00000000 0.00000000 0.02857143 0.01428571 0.02857143
[31] 0.02857143 0.17142857

$`3`
 [1] 0.00000000 0.01408451 0.00000000 0.04225352 0.01408451 0.02816901 0.01408451 0.16901408 0.00000000 0.01408451
[11] 0.00000000 0.00000000 0.01408451 0.00000000 0.02816901 0.19718310 0.00000000 0.00000000 0.00000000 0.04225352
[21] 0.00000000 0.01408451 0.00000000 0.12676056 0.00000000 0.00000000 0.00000000 0.01408451 0.00000000 0.00000000
[31] 0.05633803 0.21126761

我想得到的是32个长度为3的向量,比如说:

> 1
[1] 0.00000000 0.0000000 0.0000000
> 2
[1] 0.00000000 0.0000000 0.0000000
> 3
[1] 0.00000000 0.0000000 0.0000000
> 4
[1] 0.01538462 0.01428571 0.04225352

等等......

实际上我有一个包含三个以上向量的列表,所以无论列表中的向量数量如何,我都希望这样做,但这些向量总是长度为32。

我一直在想如何做到这一点......但无法达成解决方案......

由于

2 个答案:

答案 0 :(得分:3)

Base R解决方案:

df <- do.call(rbind, my_list)

然后你可以按列号抓取每一组。

答案 1 :(得分:1)

我们可以使用transpose中的purrr,然后使用嵌套map unlist list来获取list 32 {{1} }}Š

vector