2016-08-02 13 views
1

私は、リストのすべての要素をmerge()を適用して単一のデータフレームにマージしようとしているデータフレームのリストを持っています。私は、リストのさまざまな機能と多数の要素を処理できる一般的なソリューションを探しています。R:リストの操作を再帰的に実行する

便宜的な例として、同じ解決策が必要な関連する問題を使用しましょう。さらに

foo <- list(1, 2, 478, 676) 

ましょうが、私は最初の数をとり、秒単位でそれを分割するスクリプトを記述しようとしていますことを前提としていますので、我々は代わりに番号のリストを持っていると仮定します。その後、その商を取り、それを3番目の商で割ります。そして、その商を4番目の等分で除算します。結局、1つの数値が1つのオブジェクトに格納されます。例えば:

((foo[1]/foo[2])/foo[3])/foo[4] 

Iはrapply()リストの再帰的操作のための見てきたが、実施例の全ては、マージ()または算術演算などの上場廃止リスト及び他のない操作のためのものです。

+1

'Reduce(function(a、b)a/b、foo)'はここで提案した内容を実行しますが、全体的な問題には当てはまりません。 – r2evans

+2

あなたの質問をより適切な例で更新してください。私たちがあなたのデータの構造を理解していなければ、私たちは助けがありません。 (参考:[help/mcve](http://stackoverflow.com/help/mcve)と[再現可能な例](http://stackoverflow.com/questions/5963269/how-to-make-a-great- r-reproducible-example)) – r2evans

+0

本当にあなたは再帰的に意味しますか?あなたは実際にあなたの例にネストされた構造を持っていませんか?あなたは 'Reduce'のためのものである反復的なプロセスを記述しているようです。違いをより明確にするためにはもっと良い例が必要だと私は同意します。もしあなたがdata.framesのリストを持っていれば、それらを 'Reduce(merge、list(data.frame(a = 1、b = 2)、data.frame(a = 1、x = 10))) – MrFlick

答えて

0

コメントに記載されているように、Reduce(function, x)を使用すると、functionがリストの各要素で実行する関数であり、xがリストになります。