【问题标题】:how can i get the current file directory in R如何在 R 中获取当前文件目录
【发布时间】:2013-12-18 06:39:50
【问题描述】:

我在这里看到了很多相关的答案,但是我没有找到正确的方法来解决我在windows系统下的问题...... 我知道链接the similar question 我知道setwd()可以找到我想要的目录,但是,我的R脚本可能会移动到另一个目录而不做任何修改,所以我想知道当前文件目录,因为有source(...)这样的表达式,这叫做source R项目中同一父目录下的文件和执行文件,我该怎么办? 任何帮助表示赞赏。

【问题讨论】:

    标签: r directory


    【解决方案1】:

    基本上,如果您编写脚本并且这些脚本取决于它们所在的位置,那么您做错了。

    在包中编写代码。参数化函数以使其普遍适用。如果您有包含数据的文件夹,则将其中一个参数设为文件夹。

    source() 调用的脚本不能可靠地定位自己,但这应该不是问题,因为WHATEVER CALLED THE SCRIPT 知道脚本在哪里(它必须知道,否则怎么可能它调用它?)所以它可以将它作为参数传递。比如:

     > youarehere = "C:\foo\"
     > source("C:\foo\bar.R")
    

    现在bar.R 可以做setwd(youarehere) 并且它会工作,即使它写得不好,以至于它依赖于在其包含的文件夹中获取其他代码。

    或者你可以这样做:

    > setwd(youarehere)
    > source("bar.R")
    

    在你的调用函数中。

    但实际上,它是失败的,它是代码编写错误的标志。使用函数,编写包,使用 devtools,真的不难,然后你的代码可以在任何地方工作,你不会编写愚蠢的脚本,是source() 调用的曲折迷宫。

    保持优雅。

    【讨论】:

      【解决方案2】:

      您可以使用getwd() 函数获取当前目录并为其命名,例如:

      cpath = getwd()
      

      另一个有用的函数是file.path,它可以帮助您以简单的语法指定新目录。例如,您想获取当前目录“上”一级的目录,可以使用:

      upp.dir = file.path("..", "cpath")
      

      这使upp.dir 成为"../Your_Current_Dir"。更改到当前目录中的另一个文件夹(称为 Folder_A)怎么样?使用:

      folderA = file.path("cpath", "Folder_A")
      

      这些可能有助于轻松浏览文件系统。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-03
        • 1970-01-01
        • 2010-10-26
        • 2012-12-12
        • 2012-08-11
        • 2018-04-17
        • 2011-01-18
        相关资源
        最近更新 更多