1
我有數據框的列表,我嘗試通過應用merge()將列表的所有元素合併到單個數據框中。我正在尋找一種可處理不同功能和大量列表元素的通用解決方案。R:在列表上遞歸地執行操作
爲了方便工作的例子,我們使用一個應該有相同解決方案的相關問題。因此,假設我們有一個不是數字的列表:
foo <- list(1, 2, 478, 676)
讓我們進一步假設,我試圖寫一個腳本,需要第一號和第二分吧。然後它將商數除以第三。然後它將商數除以第四等等。最後,我將單個數存儲在單個對象中。例如:
((foo[1]/foo[2])/foo[3])/foo[4]
我見過rapply()上列出的遞歸操作,但所有的例子都是退市名單,而不是其他操作,如合併()或算術運算。
'減少(函數(a,b)a/b,foo)'按照你在這裏所建議的,它可能不適用於你的整體問題。 – r2evans
然後請用更合適的例子更新您的問題。如果我們不瞭解您的數據結構,我們無法提供幫助。 (很好的參考資料:[help/mcve](http://stackoverflow.com/help/mcve)和[reproducible examples](http://stackoverflow.com/questions/5963269/how-to-make-a-great- r-reproducible-example)。) – r2evans
你確定你的意思是遞歸的嗎?你的例子中你沒有真正的嵌套結構?你似乎正在描述一個迭代過程,這正是「Reduce」的用途。我同意你需要一個更好的例子來使差異更加清晰。如果你有一個data.frames列表,你可以將它們合併爲Reduce(merge,list(data.frame(a = 1,b = 2),data.frame(a = 1,x = 10))) – MrFlick