2017-01-23 16 views
0

約140の大きなデータセットをインポートしています。私は、これらのデータセットをインポートし、QQYYYY(四半期、年)の識別子で名前を変更する関数を構築しようとしています。私がこれまで持っている(簡体字)のコードは以下の通りです:R関数内でインポートされたデータセットの名前を変更

orig.first <- 'hist.dta_' 
file.type <- '.txt' 

clean.data <- function(qqyyyy) { 
data.file <- paste(orig.first,qqyyyy,file.type,sep="") 
origfile_ <<- read.table(data.file, sep="|", header=FALSE, 
colClasses=origclass, quote="") 
} 

は現在、このデータセット「hist.dta_Q11999.txt」グローバル罰金、しかし、それは名前「origfile_」でそれをインポートしますがインポートされます。 Q11999(1999年の第1四半期を表す)をorigfile_に連結して "origfile_Q11999"にしたいと思います。誰かが私にこれを達成するためのきれいな方法を教えてもらえますか?他の人がすでに、1つのデータフレームにすべてを連結するための方法をここで解決策を示唆したように

+2

通常、あなたが踏むことがなかった希望の深い、暗いパスにつながる終わるグローバル名前空間内のオブジェクトをハック作成。リストや個別の環境にそれらを読み込まない理由はありますか? – hrbrmstr

+0

私はそれらの深い暗い道の終わりに何があるのか​​分かりません。これをどうお勧めしますか?私は、データセットを連結して、分析のために1つの大きな時系列データセットにすることを計画しています。 – SextonEconomics

+1

だから、それらをリストに読み込んでから、おそらく 'do.call(rbind、yourlistname)'でリストを処理したいのです。これを行う方法を実演しているので、多くの回答のある質問があります。私はhrbrmstrと答えてくれることに飽き飽きしているので、最初に検索するように努力すべきだと思います。 –

答えて

0

quarters <- c("Q11999") # append here other quarters or generate somehow 

origData <- lapply(quarters, function(qqyyyy) { 
data.file <- paste(orig.first,qqyyyy,file.type,sep="") 
origfile <<- read.table(data.file, sep="|", header=FALSE, colClasses=origclass, quote="") 
origfile$quarter <- qqyyyy 
return(origfile) 
}) 
origData <- do.call(rbind, origData) 
関連する問題