2016-12-22 9 views
1

リストの一部を抽出して新しい変数名に保存するという繰り返し作業があります。サプリーやforループを使った文字列のRの繰り返しタスク

私はaaa_report <- original[["aaa"]]を使用することができますし、私は今、私はこの繰り返し作業を自動化したいリスト変数original

からaaaセクションでaaa_reportという名前の新しい変数があります。

aaa_report <- original[["aaa"]]

bbb_report <- original[["bbb"]]

ccc_report <- original[["ccc"]]

...

私はsapplyを使用して、このエラーを取得しようとするすべての名前dept <- c("aaa", "bbb", "ccc", "...")

deptという別の「文字」リスト変数を持っています。

sapply(dept, function(x) x"_report" <- original[[x]]) 

Error: unexpected string constant in "sapply(dept, function(x) x"_report""

私は運ですべてapply家族やfor loopを試してみました。

for(x in dept){ 
    x"_report" <- original[[x]] 
} 

私は初心者からプログラミングまで一般的ですので、アドバイスが大いに役立ちます。

+0

リストに入れておき、必要に応じて参照するのはなぜですか?これはより合理的な方法のように思えます。名前付きリストを実行するためのいくつかの便利なメソッドについては、[this post](http://stackoverflow.com/questions/17499013/how-do-i-make-a-list-of-data-frames)のgregorの回答を参照してください。要素。 – lmo

+0

私はリストの部分を後で別の方法で組み合わせたものを使用します – adm

+0

本当にこれをやりたければ(リストを保持することはほとんど常に最高です) 'get(paste0(x、" _report "))' –

答えて

0

あなたはassign機能を使用し、接近していた:

for(x in dept) assign(paste0(x, "_report"), original[[x]]) 

割り当てがapply機能のローカル環境になりますので、それは、apply機能では動作しません。

コメントに記載されているとおり、すべてをリストに保存する方が常に優れています。

関連する問題