2017-10-20 9 views
0

残念なことにできない非常にユニークなデータセット(外部Rプログラムから呼び出された)を持つ多数の変数/値を作成しようとしています。テーブルまたはリストに含まれています。これらのファイルのそれぞれに名前を付けるために、ファイル名のリストに沿って反復する方法はありますか?Rのリストから変数の名前を変更してください(リストやデータフレームはありません)

私はすでに1からループのインデックスを反復処理しています。(この例では)3、と私はdata.frame中のファイルのリストを持っている:

filenames <- [file_name_1, file_name_2, file_name_33] 

for(i in 1:nrow(filenames)){ 

#How do I name these files without typing in 1,2, and 33 manually? 
#Again they cannot be saved as a list or dataframe? 
file_name_1 <- Exterior_complex_function(i) 
file_name_2 <- Exterior_complex_function(i) 
file_name_33 <- Exterior_complex_function(i) 
} 

は私がこれを救うことがしたいですリスト、はるかに簡単です!みんなの情報について

、これは私がリストを使用しようとすると、私が取得エラーです:

object of type 'S4' is not subsettable 
+0

'sapply(ファイル名、Exterior_complex_function、simplify = FALSE)'? – r2evans

答えて

0

sapply/lapply参考になります。

lapply(filenames, Exterior_complex_function) 

あなたはインデックスを渡したい場合は、この

lapply(seq(filenames), Exterior_complex_function) 

https://stat.ethz.ch/R-manual/R-devel/library/base/html/lapply.html

+0

それがうまくいくかどうかはわかりません。特定の値を引き出すために、既存のデータフレームを通して "i"インデックスを持つforループを繰り返し処理する必要があるためです。私は、for-loop内に名前を埋め込むか、ループ外で変数名を生成してからインデックスを増やすように呼び出すことができますか? – rleenay

0

を使用文字通りあなたがループに使用して維持するために作成する必要がある唯一の変更はインデックスにあるリストではなく経由配列:

filenames <- list("a", "b", "c") 
for (file in filenames) print(file) 
#> [1] "a" 
#> [1] "b" 
#> [1] "c" 

*applyファミリーの機能が他にも提案されているように便利かもしれません。

+0

しかし、 'print(file)'を実行すると、そのファイルに関数を割り当てることができません。それが私の混乱の原因です。 – rleenay

+0

'print(file)'を書いたところで、あなたの 'Exterior_complex_function'を含め、好きな式に置き換えることができます。あなたのコードは 'for(ファイル名のファイル)Exterior_complex_function(ファイル)' –

+0

のように見えますが、このインスタンスでは 'external_complex_function'を実行するためにファイルを呼び出すことはありません - 私はそのファイルに書き込もうとしています。それが今私にとって混乱していることでしょうか? – rleenay

0
filenames <- c("file_name_1", "file_name_2", "file_name_33") 
tmp_list <- list() 

for(i in 1:nrow(filenames)){ 
    tmp_list[filenames[i]] <- Exterior_complex_function(i) 
} 

多分うまくいくでしょう。

関連する問題