0

次のような .txt ファイルを含むディレクトリがあるとします (すべてのファイルのコンテキストは同じですが、ファイル名が異なることに注意してください)。

dir('tstdir')
[1]"file1_err1.txt"
[2]"file2_ree1.txt"
[3]"file_test.txt"

したがって、このディレクトリを通過するには、for ループを使用します (読みやすさの例):

for (i in dir('tstdir')) {
    tst<-read.table(paste('tstdir/',i, sep=''),stringsAsFactors=F)
    DO SOME MODIFICATION (Randomizing the data)
    write.table(tst, file = paste('tst',i,sep='')
}

だから私はtxtファイルごとに何かをしたいのですが、ロードされたファイルの名前+データフレームの名前でテキストファイルに書き戻します。(データをランダム化する方法は知っていますが、たとえば必要ありません)

私は、データの名前を変更し、正しい場所に署名することに何か問題があることを知っています。ステートメントについて考えましたifが、これがなくてもできるかどうかを確認したいと思います。残念ながら成功しませんでしたが、助けやヒントをいただければ幸いです

4

1 に答える 1

1

このようなことをしたいですか?ランダム化の例がなければ、これがうまくいくと正確に言うのは難しいですが、うまくいくはずです...

f <- list.files( 'tstdir' , pattern = "*.txt" , full.names = TRUE )

lapply( 1:length(f) , function(x){ 
    dat <- read.table( f[x] , stringsAsFactors = F )

    randomise dat code here

    require( R.utils )
    write.table( dat , file = getAbsolutePath(f[x]) )
    }
)
于 2013-03-20T13:44:52.153 に答える