0

我在读取具有动态名称的 csv 文件并避免对文件路径进行硬编码时遇到问题。我想要简洁的代码(非硬编码)。如果我对完整路径(“~”之前的所有内容)进行硬编码,它可以很好地读取文件。但是软编码(如果这与硬编码相反)它给出错误的文件路径(尽管在错误中显示了正确的路径。我有两个可变部分的文件名,我在阅读之前粘贴到文件名中在。如果我避免粘贴,只为每个人输入一个路径,它也可以工作。

#dynamic part I usually have in a loop with all the options. 
part_a <- "outside" #other options here in my loop include "inside"
part_b <- "late" # other option "early" or "preterm"

#reading in the df
df <-read.csv(paste0("~/Data/FromR/clean_",part_a,part_b,"_2016.csv"),
                           check.names=FALSE, na.strings="null")

Error in file(file, "rt") : cannot open the connection
    In addition: Warning message:
    In file(file, "rt") :
      cannot open file 'C:/Users/myname/Documents/Data/FromR/clean_outsidelate_2016.csv': No such file or directory

如果我getwd()在粘贴的第一部分使用这里~建议的位置,它可以通过在粘贴开始时生成此字符串来工作。但是我怎样才能让它与“〜”一起工作?使用时,它停在“文档”文件夹..."C:/Users/myname/Documents/MyR_Projects/Specific_R_project/"~

期望的结果是读取文件而不会出错执行功能并与其他文件重复。我的循环可以很好地硬编码,我只想让它更通用或软编码。

4

1 回答 1

0

我只是试图testFile.txt从不同的地方读取我家中的文件(),wd它可以正常工作~

 myFile <- "testFile
 mymy <- ".txt"
 ciao <- read.delim(paste0("~/",myFile,mymy))

在powershell中,您可以使用%~%(看看这里),但我不知道如何在 R中扩展。$HOME

#-------- edit

看看这里这里。基本上你定义的任何变量.Renviron都应该是可访问的。

于 2019-10-01T09:10:24.467 回答