-2

为了可重现:假设您在一个具有相同扩展名的目录中有 5 个(file1、file2、file3、file4、file5)文件。我想制作每个文件的 4 个副本,所以我将在该目录中有 20 个文件而不是 5 个文件。

程序:

      1-Read all files
      2- make 4 copies of file1 and put them in the directory as file1-1,file1-2,.... 
      3- make 4 copies of file2 and put them in the directory as file2-1,file2-2,.... 
      4- do the same for all files

读取文件列表:

smith <- list.files("C:\\New folder (3)", "*.envi", full.names = TRUE)

可以在R中做到这一点吗?

4

1 回答 1

3

你可以使用这个嵌套的 lapply 循环(我就是喜欢lapply!)并调整n你想要的副本数量......

f <- list.files( path = "C:\\New folder (3)" , pattern = "*.envi" , full.names = TRUE )
n <- 5
lapply( seq_len( length(f) ) , function(x) { lapply( seq_len( n ) , function( x ,y ){
    file.copy( f[x] , paste0( sub("^([^.]*).*", "\\1", f[x] ) , "-" , y , ".txt" ) )
    } , x = x )
} )

感谢这篇文章的正确sub模式匹配以删除文件扩展名。

于 2013-03-21T16:41:34.580 回答