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 回答