【发布时间】:2018-08-18 04:46:03
【问题描述】:
我有一个看起来像这样的函数:
read_data <- function(filename, header) {
path <- paste("./output/", filename, sep = "")
if (file.exists(path)) {
data <- read.csv(file = path, header = header, sep = ",")
}
# Partially removed for brevity.
}
我想要实现的是,给定一个文件名,我想搜索该文件名在output 子目录中是否可用,该子目录是我的脚本所在的子目录,如果可用,我想读取该文件。问题是只要我知道read.csv 函数的文件参数需要文件的完整路径。所以,我需要以某种方式获取我的脚本所在的目录,这样我就可以将它与其余的子目录和文件名连接起来。我可以使用getwd() 获取当前工作目录,但这并不完全相同,因为我的工作目录似乎总是固定的,而脚本可以位于计算机的任何位置。任何想法如何获取脚本的目录,并将其与输出子目录和 R 中提供的文件名连接起来?
【问题讨论】:
-
查看
list.files()我认为这可能会解决您的问题。 -
file.exists函数告诉您文件是否存在。 -
file.exist在路径上可能无法为您提供所需的内容。您可以在我在下面给您的list.files示例周围添加一个 file.exists 包装器,但读取所有内容可能更容易,空格对应于文件名元素编号。 -
我不清楚您要做什么。你想知道一个文件的完整路径,只知道它的基本名称吗?
-
@nicola 假设这个脚本名为
myscript.R,它位于C:\User\myUser\Desktop\myscript.R,并假设R 默认将C:\User\myUser作为当前工作目录。所以,我想做的是在这个myscript.R里面我想要一些代码来获取它在硬盘中的完整路径,在这个例子中是C:\User\myUser\Desktop\myscript.R。
标签: r