我正在使用來自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