使用R循环遍历子目录并复制文件

时间:2014-11-03 17:19:17

标签: r loops

我正在尝试在R中创建一个批处理脚本来预处理一些数据,我要做的第一步是检查子目录中是否存在文件,然后(如果存在)创建带有新名称的副本。我的语法有问题。

这是我的代码:

##Define the subject directory path
sDIR = "/home/bsussman/Desktop/WORKSPACE"

#create data frame to loop through

##list of subject directories
subjects <-list.dirs(path = sDIR, full.names = TRUE, recursive = FALSE)


for (subj in 1:length(subjects)){
  oldT1[[subj]] <- dir(subjects[subj], pattern=glob2rx("s*.nii"), full.names=TRUE)
     T1[[subj]] <- paste(subjects[subj], pattern="/T1.nii",sep="")

  if (file.exists(paste(subjects[subj], pattern="/T1.nii",sep=""))=FALSE{
    file.copy(oldT1, T1)
  } 
}

它重命名一个子目录中的文件,但不进行循环操作会给我这些错误:

Error: unexpected '=' in:
"        
  if (file.exists(paste(subjects[subj], pattern="/T1.nii",sep=""))="
>     file.copy(oldT1, T1)
[1] FALSE
>   } 
Error: unexpected '}' in "  }"
> }
Error: unexpected '}' in "}"

我并不担心[1] FALSE消息。但任何想法?

谢谢!

1 个答案:

答案 0 :(得分:1)

这只是if语句中语法的问题。尝试替换它:

if (file.exists(paste(subjects[subj], pattern="/T1.nii",sep=""))=FALSE{
    file.copy(oldT1, T1)
}

用这个:

if (!file.exists(paste(subjects[subj], pattern="/T1.nii",sep=""))){
    file.copy(oldT1, T1)
}