2016-10-05 15 views
0

私の最初の投稿ので、忍耐を持ってください:)。同じフレーズ "_movie1"を追加して、R内の複数のデータフレームの名前を変更するにはどうすればよいですか?

私は、コードを使用して複数のdata.framesをインポート:

setwd("C:/movie1") 
data_list <- list.files(pattern="*.csv") 

for (i in 1:length(data_list1)) 
assign(data_list1[i], 
    read.csv(data_list1[i], 
        sep= ",", 
        dec = ".", 
        header = T)) 

という名前data.framesをもたらした: など、 "well_0.csv"、 "well_1.csv"(私はこの平和を見つけました私は別のディレクトリから別のディレクトリからdata.framesの別のセットをインポートしたいが、同じ名前でそれらをマージするので、私はこれらのdata.framesの名前を " 「well_0_movie1」または少なくとも「well_0.csv_movie1」と表示されるので、Rはそれらを上書きしません。 あなたが

assign(sprintf("%s_movie1",data_list1[i]), read.csv(data_list1[i], sep= ",", dec = ".", header = T)) 

を行うことができます

+2

あなたは 'assign'を使う必要がありますか? lapplyを使用してdata.framesをリストに読み込むのはなぜですか? – Dason

+2

あなた自身に大きな好意[そして、連続して名前のついたデータフレームの束の代わりにデータフレームのリストを使う](http://stackoverflow.com/a/24376207/903061)。 – Gregor

+0

@Gregor私はこれについてチンチンしていましたが、私はコード全体を書き直さなければならなかったし、現在私がこの作業を行う時間やスキルを持っているかどうかはわかりませんが、リンクはtnxです。あなたはこれが実行をスピードアップする(これは私が読んだものです)か、データをより簡単に扱えるためです。 – BStat

答えて

1

あなたはgsubを使用してデータをロードし、その後_movie1を追加pasteを初めて使用するときから.csvを削除することができます。

data_list1 <- list.files(pattern="*.csv") 
for (i in data_list1) 
    assign(gsub(".csv","",i), 
     read.csv(i,header=T)) 


#Second time (in a different directory) 
data_list2 <- list.files(pattern="*.csv") 
for (j in data_list2) 
    assign(paste(gsub(".csv","",j),"movie1",sep = "_"), 
     read.csv(j,header=T, sep = ",", dec = ".")) 

私はこれが便利です願っています。

+0

これは完全に機能しました。ありがとうございました:D – BStat

+0

あなたは大歓迎です!緑色のチェックマークをクリックして、それを承認済みとマークすることを検討してください。 – Abdou

0

私は今それをテストすることはできません助けてください、私は、タイポグラフィのエラーを持っていない願っています。

関連する問題