我在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。
我一直在想如何做到这一点......但无法达成解决方案......
由于
答案 0 :(得分:3)
Base R解决方案:
df <- do.call(rbind, my_list)
然后你可以按列号抓取每一组。
答案 1 :(得分:1)
我们可以使用transpose
中的purrr
,然后使用嵌套map
unlist
list
来获取list
32 {{1} }}Š
vector