2016-11-17 8 views
-2

複数の(変更不可能な)ディレクトリにある複数のファイルをRに読み込もうとしています。次のように私のコードは次のとおりです。文字列の名前に基づいて複数のオブジェクトにアクセスする

gs_scores_dir="/home/directory1/file1.txt" 
ps_scores_dir="/home/directory2/file2.txt" 
ds_scores_dir="/home/directory3/file3.txt" 

for (data in c("gs","ps","ds")){ 
    assign(paste(data,"scores", sep="_"), 
     read.table(paste(data,"scores_dir",sep="_"),header=T)) 
} 

は、私は3つのファイルは、オブジェクト名gs_scoresps_scoresds_scoresとRに読み込またいです。しかし、私は、次のエラーメッセージが表示されます。

Error in file(file, "rt") : cannot open the connection 
In addition: Warning message: 
In file(file, "rt") : 
    cannot open file 'gs_scores_dir': No such file or directory 

私はこれにコードを変更すると、それが動作:

for (data in c("gs","ps","ds")){ 
    assign(paste(data,"scores", sep="_"), 
     read.table(gs_scores_dir,header=T)) 
} 

誤差はありますか? forループ内でread.tableを使用するより良い方法はありますか?

+0

を行うだろう文字列 – timat

+0

[R:同じ名前の文字変数でオブジェクトを呼び出す方法](http://stackoverflow.com/questions/9083907/r-how-to-call-an-object-with-同じ名前の文字変数) – timat

+0

'myDFList < - lapply(list.files()、read.table))'を使って複数のファイルをRに読み込み、 'assign'とクラッタを必要としないでください環境。 [ここをクリックしてください](http://stackoverflow.com/questions/11433432)を参照してください。また、[rbind multiple dataframes]について読む(http://stackoverflow.com/questions/2851327/convert-a-list-of-data-frames-into-one-data-frame) – zx8754

答えて

2

私はそれをテストすることはできませんが、私は思う:

read.table(get(paste(data,"scores_dir",sep="_")),header=T)) 

これはループ内read.tableをしなければならないが、彼の名前に基づいてオブジェクトにアクセスする、ではありません、それ

関連する問題