2016-06-29 58 views
2

複数のdtaファイルをcsvに変換したい。 これまでのところ、私のコードでは、それは動作しますが、私のフォルダはサブフォルダが含まれている場合、それらは無視されます(私はstackoverflowの上で見つかった答えを使用正直に言うと...)csvでdtaファイルを変換する

library(foreign) 

setwd("C:\Users\Victor\Folder") 

for (f in Sys.glob('*.dta')) 
    write.csv(read.dta(f), file = gsub('dta$', 'csv', f)) 

です。 私の問題は、11個のサブフォルダ(サブフォルダ自体が含まれている可能性があります)を持っていることです。今はサブフォルダごとに自分の作業ディレクトリを変更する必要があるため、フォルダと。

私は今Rを使用しています、

はあなたにこれを行うにはあなたのRで

答えて

0

をありがとう...私はパンダ(パイソン)を使用しようとしたが、変換の品質は議論の余地があると思われますrecursive = Tlist.filesに設定します。それはOSのrm -rfのようなコマンドを使用して、LinuxとWindowsを含むのコマンドライン操作で動作し、この投稿はあり

R.

に複数の機能に適用される -

実際には、ディレクトリを扱うときに再帰を指定すると、一般的なの一種であります良い例:

How to use R to Iterate through Subfolders and bind CSV files of the same ID?

彼らの例(唯一の彼らは、ディレクトリ/サブディレクトリ検索の結果でやっていることで異なっている)である:

lapply(c('1234' ,'1345','1456','1560'),function(x){ 
    sources.files <- list.files(path=TF, 
           recursive=T, 
           pattern=paste('*09061*',x,'*.csv',sep='') 
           ,full.names=T) 
     ## You read all files with the id and bind them 
     dat <- do.call(rbind,lapply(sources.files,read.csv)) 
     ### write the file for the 
     write(dat,paste('agg',x,'.csv',sep='') 
    } 

pattern = '.dta'の場合は、ベースディレクトリをpathに設定してください。

0

再帰的引数は、サブディレクトリで検索するように指定されているため、ベースRのlist.files()を使用することを検討してください。 full.namesもファイル参照の絶対パスを返すように設定する必要があります。だから、

.dta拡張子(すなわち、Stataのデータセット)を探し、その後に読み取りを実行し、機能を書き出すために、あなたのパターンを設定します。

import foreign 

statafiles <- list.files("C:\\Users\\Victor\\Folder", pattern="\\.dta$", 
         recursive = TRUE, full.names = TRUE) 

lapply(statafiles, function(x) { 
    df <- read.dta(x) 
    write.csv(df, gsub(".dta", ".csv", x)) 
}) 

そして、内蔵されていた方法Pythonのパンダで対応〜read and write stata files

+0

ありがとうございました。私があなたにコードしようとすると、エラーが発生しました: 'Error:unexpected'} 'in "}"'。またstataファイルを読むためのパンダもありますか?私はPythonでそれをコード化しましたが、それはかなり遅かったので、私はRを使うと早くなるでしょう! –

+0

すべての中カッコとカッコが正常に閉じるというエラーが表示される理由はわかりません。あなたはlapply全体をハイライトしましたか?いずれかのパフォーマンスを試してみてください。すべてのデータ量、ファイルの数などに依存します。csv変換の場合、私はそれらがかなり異なっているとは想像もできません。 – Parfait

関連する問題