有一个类似这样的列表,从1开始。
[[7158]]
[1] 81 72
[[7159]]
[1] 81 69
[[7160]]
[1] 81 79
[[7161]]
[1] 81 84
需要将此内容更改为数据框,其中每个元素的第一个数字对齐在一列中,每个元素的第二个数字放置在数据框的第二列中。因此,它应该最终呈现如下:
> data.frame("col1" = c(81, 81, 81, 81), "col2" = c(72, 69, 79, 84))
col1 col2
1 81 72
2 81 69
3 81 79
4 81 84
我尝试使用do.call(rbind.data.frame, my_list)
,但它似乎会将数字放入大量列中,而不是强制缩减为所需的两列。用循环做这件事相当简单,但有没有R的方法可以完成呢?谢谢。
do.call(rbind, my_list)
,然后对其调用data.frame
。这样应该比rbind.data.frame
更快。 - A5C1D2H2I1M1N2O1R2T1library(stringi); stri_list2matrix(my_list, byrow = TRUE)
或者t(simplify2array(my_list))
。你还需要将它们包装在as.data.frame
中以获得一个data.frame
作为输出。 - A5C1D2H2I1M1N2O1R2T1