【问题标题】:How to define a part of a directory path as a variable for further use using R?如何将目录路径的一部分定义为变量以供进一步使用 R?
【发布时间】:2019-06-22 16:26:25
【问题描述】:

关于我想使用 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'

我是否错过了在此代码中添加一些内容?或者如何解决这个问题?

非常感谢您提前提供的帮助!

【问题讨论】:

  • "XXX/MainFolder/."XXX/MainFolder 实际上已经存在?如果不是,那么显然第二次创建调用会失败。
  • 通过这个命令,我想在主文件夹中创建一个子文件夹。因此,我只想通过添加/MainFolder/.来扩展XXX的目录。我认为这会产生字符串"C:/users/USER_1/Desktop/MainFolder/.",应该在其中创建子文件夹。是的,很可能,这不是这样工作的,但我不知道如何以类似的方式进行更改,我可以扩展开头显示的目录。

标签: r variables path directory


【解决方案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,即它被处理为文字字符串而不是指向已保存值的指针。

【讨论】:

  • 使用file.path(...)这种方法保存文档是否也有效?
  • 您可以根据需要连接路径的所有部分,因此您还可以在路径末尾添加文件名和扩展名,然后使用生成的字符串保存文件。
猜你喜欢
  • 2018-06-13
  • 2016-04-29
  • 1970-01-01
  • 2014-02-07
  • 1970-01-01
  • 1970-01-01
  • 2015-03-30
  • 1970-01-01
  • 2017-01-19
相关资源
最近更新 更多