我正在使用来自RStudio的reticulate
R包运行一些python代码以将ROOT(http://root.cern.ch)中的数据转换为R.我的问题是python代码返回一个行列表列表。例如,在蟒蛇,将未命名条目列表转换为数据框或tibble
[[0L, 0L, 'mu+', 1, 0, 0, 1, 3231.6421853545253, -17.361063509909364, 6322.884067996471, -2751.857298366544, 1.2318766603937736, 1407.9560948453036, 3092.931322317615],
[0L, 0L, 'nu_e', 3, 1, 0, 0, 3231.6421853545253, -17.361063509909364, 6322.884067996471, -743.6755000649275, 9.950229845741603, 342.4203222294634, 818.781981693865],
[0L, 0L, 'anti_nu_mu', 2, 1, 0, 0, 3231.6421853545253, -17.361063509909364, 6322.884067996471, -808.1114666690765, 21.680955968349267, 445.2784282520303, 922.9231198102832],
...]
这些数据都被转换为通过reticulate
R中列出的相应列表,
List of 136972
$ :List of 14
..$ : int 0
..$ : int 0
..$ : chr "mu+"
..$ : int 1
..$ : int 0
..$ : int 0
..$ : int 0
..$ : num 7162
..$ : num -0.0108
..$ : num -627
..$ : num 264
..$ : num -3.24
..$ : num 3080
..$ : num 3093
$ :List of 14
..$ : int 0
..$ : int 0
..$ : chr "mu+"
..$ : int 1
.... (you get the idea)
我到处找我能想到的,我无法找到一个将这些数据转化为数据框的方式(我真的想要一个小窍门)。一个问题似乎是列表条目未被命名。有很多数据,所以我不想做一些效率低下的事情。我可以让Python代码返回一个字典的字典,这将工作。但是创建行的python代码非常简单。
如果有一个简单的方法把这些逐行列出成数据帧,这将是理想的。有任何想法吗?
你试过'bind_rows'? –
也许像'as.data.frame(lapply(1:14,函数(X)sapply(LL,函数(y)的Y [[X]])),col.names = paste0( “V”,1: 14))'(其中'LL'是你'136972个值list' – A5C1D2H2I1M1N2O1R2T1
由于这一工程,是不是太慢了我都试过, DF <! - 。as.data.frame(do.call(rbind ,myList中),col.names = colnames) 后来我结束了一个数据帧,其中列有清单。有没有一种方法,使这项工作? – Adam