【问题标题】:Getting first file in a list of files into the first folder of a list of folders将文件列表中的第一个文件放入文件夹列表的第一个文件夹中
【发布时间】:2017-03-14 10:49:48
【问题描述】:

假设我有以下文件:

File1.dat
File2.dat
File3.dat
File4.dat
.
.
.
File50.dat

以及以下目录:

M1_Para1_Stand1
M1_Para1_Stand2
M1_Para1_Stand3
M1_Para2_Stand1
.
.
.
M2_Para6_Stand3

现在我想将File1 转换为M1_Para1_Stand1、File2 转换为M1_Para1_Stand2、File50 转换为M2_Para6_Stand3 等,这样它看起来像这样:

M1_Para1_Stand1/File1.dat
M1_Para1_Stand2/File2.dat
M1_Para1_Stand3/File3.dat
M1_Para2_Stand1/File4.dat
.
.
.
M2_Para6_Stand3/File50.dat

有没有办法通过列表来做到这一点? 目前我正在使用 file.copy 但这有点烦人......

感谢回复

【问题讨论】:

  • 对文件、文件夹进行排序,然后将file[i] 移动/复制到folder[i] 中?
  • 问题是,文件和文件夹没有像示例中那样命名,无法对文件夹进行排序;本质上,我想在我的目录的第一个文件夹中获取我的目录中的第一个文件。如果我使用 list.files/list.dirs 这意味着,我的 list.files 中的第一个文件进入我的 list.dirs 的第一个文件夹
  • 在这种情况下,我们需要知道如何将文件映射到文件夹。每个的命名约定是什么?
  • 您要将文件夹中的文件写入.csv 或类似名称吗?
  • 文件是 .dat 文件。

标签: r list file directory copy-paste


【解决方案1】:

我不确定这是否是您想要的,但也许它会有所帮助:

##Dummy Data##
x <- data.frame(a=1:5,b=5:1)
files <- do.call(list, replicate(5,x,simplify=FALSE))

##Create Folders##
folders <- paste0("Your_Path/folder_",1:5,"/")
lapply(seq_along(folders), function(x) dir.create(folders[x]))

##Write Data##
lapply(seq_along(files),function(x) write.table(files[[x]],paste0(folders[x],"file",x,".dat")))

【讨论】:

  • 嗯,这不是我真正想要的,因为我只需要将我的文件复制粘贴到现有目录中;不过谢谢!
  • @AndySOWI 您可能只使用file.copy 作为lapply 中的函数。
猜你喜欢
  • 1970-01-01
  • 2019-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-05
  • 1970-01-01
  • 2021-10-16
  • 2019-03-13
相关资源
最近更新 更多