我有下面的示例結構的列表:拼合列表具有複雜嵌套結構
> dput(test)
structure(list(id = 1, var1 = 2, var3 = 4, section1 = structure(list(
var1 = 1, var2 = 2, var3 = 3), .Names = c("var1", "var2",
"var3")), section2 = structure(list(row = structure(list(var1 = 1,
var2 = 2, var3 = 3), .Names = c("var1", "var2", "var3")),
row = structure(list(var1 = 4, var2 = 5, var3 = 6), .Names = c("var1",
"var2", "var3")), row = structure(list(var1 = 7, var2 = 8,
var3 = 9), .Names = c("var1", "var2", "var3"))), .Names = c("row",
"row", "row"))), .Names = c("id", "var1", "var3", "section1",
"section2"))
> str(test)
List of 5
$ id : num 1
$ var1 : num 2
$ var3 : num 4
$ section1:List of 3
..$ var1: num 1
..$ var2: num 2
..$ var3: num 3
$ section2:List of 3
..$ row:List of 3
.. ..$ var1: num 1
.. ..$ var2: num 2
.. ..$ var3: num 3
..$ row:List of 3
.. ..$ var1: num 4
.. ..$ var2: num 5
.. ..$ var3: num 6
..$ row:List of 3
.. ..$ var1: num 7
.. ..$ var2: num 8
.. ..$ var3: num 9
注意,section2
列表包含名爲rows
元件。這些代表多個記錄。我所擁有的是嵌套列表,其中一些元素位於根級,而其他元素是同一觀察值的多個嵌套記錄。我想在一個data.frame
格式輸出如下:
> desired
id var1 var3 section1.var1 section1.var2 section1.var3 section2.var1 section2.var2 section2.var3
1 1 2 4 1 2 3 1 4 7
2 NA NA NA NA NA NA 2 5 8
3 NA NA NA NA NA NA 3 6 9
根級元素應該填充在第一行,而row
元素應該有自己的行。作爲一個附加的複雜因素,row
條目中的變量數量可能會有所不同。
爲什麼你想要這個所需的輸出?這似乎是一個不方便的數據格式。 – A5C1D2H2I1M1N2O1R2T1 2015-01-28 17:52:51
我正在執行一個soap請求,它返回一個嵌套列表中嵌套結構的html表。我不知道爲什麼你認爲所需的輸出不方便。它以data.frame格式重新創建html表格,並在條目跨越多行時填充NA值。 – Zelazny7 2015-01-28 18:46:04
您是否可以提供一個或兩個以上的測試用例,因爲您已經爲此添加了一個賞金。你提到你正在尋找一個「通用」解決方案,所以很有可能知道應該考慮哪些場景。 – A5C1D2H2I1M1N2O1R2T1 2015-02-01 04:22:33