如何使用R将目录路径的一部分定义为变量以供进一步使用?

时间:2019-01-29 14:04:11

标签: r variables path directory

对于我想使用R编写的脚本,我有一个小问题。问题如下:

我有一个很长的脚本,其中生成文件夹,并且对工作目录进行多次设置。而且,由于我不是唯一将使用此脚本的人,所以我想以一种方式编写它,即每个人都只需更改一次定义为XXX的目录。这意味着USER_1可以使用如下所示的代码,而USER_2只需更改XXX的定义。

我试图通过以下方式做到这一点:

XXX <- "C:/users/USER_1/Desktop"

setwd(XXX)

path_Folder1 <- "XXX"
new_Folder1 <- "MainFolder/"
dir.create(file.path(dirname(path_Folder1), new_Folder1))

path_Subfolder1 <- "XXX/MainFolder/."
new_Subfolder <- "Subfolder/"
dir.create(file.path(dirname(path_Subfolder1), new_Subfolder))

设置工作目录以及创建第一个文件夹都很好。但是,对于子文件夹,我收到此错误消息:

Warning message:
In dir.create(file.path(dirname(path_Subfolder1), new_Subfolder)) :
  cannot create dir 'XXX\MainFolder\Subfolder', reason 'No such file or directory'

我是否想向此代码添加一些内容?还是有可能解决这个问题?

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

类似以下的方法应该起作用:

# Let users change this variable
personal_dir <- "C:/users/USER_1/Desktop"

# Create main folder
main_folder <- "Mainfolder"
main_folder_path <- file.path(personal_dir, main_folder)
dir.create(main_folder_path)

# Create sub folder
sub_folder <- "Subfolder"
sub_folder_path <- file.path(personal_dir, main_folder, sub_folder)
dir.create(sub_folder_path)

我认为您的代码无法正常工作的原因是您在引号之间使用了XXX,即它被当作文字字符串处理,而不是指向保存值的指针。