Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将特定文件从子文件夹复制到R中的另一个文件夹?_R - Fatal编程技术网

如何将特定文件从子文件夹复制到R中的另一个文件夹?

如何将特定文件从子文件夹复制到R中的另一个文件夹?,r,R,新年快乐 嗨 我想将子文件夹中具有特定名称的文件复制到另一个文件夹(与主文件夹同名)。 为了澄清我的问题,我举了一个例子。父文件夹(“Histormach”)包含60个子文件夹(即第一个子文件夹:“TCGA_02”、“TCGA_06”、…),每个文件夹包含4个子文件夹(即第二个子文件夹:“f”、“T1”、“T2”、“t1c”),每个文件夹中都有多个文件 我想从这些文件中选择具有类似“_skullstrip_out.nii”模式的特定文件,然后将其复制到另一个文件夹(即“基线”),并使用相同的第一

新年快乐

我想将子文件夹中具有特定名称的文件复制到另一个文件夹(与主文件夹同名)。 为了澄清我的问题,我举了一个例子。父文件夹(“Histormach”)包含60个子文件夹(即第一个子文件夹:“TCGA_02”、“TCGA_06”、…),每个文件夹包含4个子文件夹(即第二个子文件夹:“f”、“T1”、“T2”、“t1c”),每个文件夹中都有多个文件

我想从这些文件中选择具有类似“_skullstrip_out.nii”模式的特定文件,然后将其复制到另一个文件夹(即“基线”),并使用相同的第一个子文件夹名称(即“TCGA-02”、“TCGA_06”…)

我试过这个密码


parent\u folder我理解你的问题,我认为下面的内容会让你走得更远。至少,您的所有
for
循环都应该是不必要的。相反,您应该将现有的文件操作函数与递归参数一起使用

您没有提供任何要使用的数据。我在R目录中到处玩文件。我尝试对“doc”文件夹中的所有.pdf文件执行基本相同的操作,并将它们复制到与“doc”相同级别的“mytest”文件夹(即工作目录)


我理解你的问题,我认为以下几点会让你走得更远。至少,您的所有
for
循环都应该是不必要的。相反,您应该将现有的文件操作函数与递归参数一起使用

您没有提供任何要使用的数据。我在R目录中到处玩文件。我尝试对“doc”文件夹中的所有.pdf文件执行基本相同的操作,并将它们复制到与“doc”相同级别的“mytest”文件夹(即工作目录)

# To make a reproducible example  
setwd(R.home()) # Your working dir should be the folder "PHD" that contains "Histomach". 

# Define from and to dirs, and the file pattern
from_dir <- "doc"     # should be "Histomach" in your case
to_dir   <- "mytest"  # "base-line"
pattern  <- ".pdf"    # "_skullstrip_out.nii",


# Get all relevant files
the_files <- list.files(path = from_dir, 
                        recursive = TRUE,
                        pattern = pattern)

# Create the "to_dir" as well as all corresponding subdirs (where files to copy were found)
sapply(file.path(to_dir, dirname(the_files)), 
       dir.create, recursive = TRUE, showWarnings = FALSE)

# Copy the files
file.copy(from = file.path(from_dir, the_files), 
          to   = file.path(to_dir,   the_files))
file.remove(file.path(to_dir, the_files))