R 独立于用户的数据导入

R 独立于用户的数据导入,r,data-import,R,Data Import,假设X和Y正在进行一个项目,该项目需要一个文件data.csv。它们在名为main.R的云服务中有一些公共文件。现在假设在main.RX和Y中分别通过 # uncomment first line if you are X, otherwise uncomment second line # data <- read.csv("C:/User/X/Documents/cloud/project/data.csv") # data <- read.csv("C:/User/Y/Desk

假设X和Y正在进行一个
项目
,该项目需要一个文件
data.csv
。它们在名为
main.R
的云服务中有一些公共文件。现在假设在
main.R
X和Y中分别通过

# uncomment first line if you are X, otherwise uncomment second line
# data <- read.csv("C:/User/X/Documents/cloud/project/data.csv")
# data <- read.csv("C:/User/Y/Desktop/cloud/project/data.csv")
#如果您是X,请取消注释第一行,否则取消注释第二行
#数据试试这个:

#check if directory exists
dataDir <-
  if(dir.exists(paste0("C:/Users/",Sys.info()["effective_user"], "/Documents/cloud/project/"))){
    paste0("C:/Users/", Sys.info()["effective_user"],"/Documents/cloud/project/")
  } else if(dir.exists(paste0("C:/Users/", Sys.info()["effective_user"],"/Desktop/cloud/project/"))) {
    paste0("C:/Users/", Sys.info()["effective_user"],"/Desktop/cloud/project/")
  }


#if exists then read in
if(!is.null(dataDir)){ read.csv(paste0(dataDir,"data.csv")) }
#检查目录是否存在

dataDir如果事先设置了工作目录,比如通过
setwd(“C:/User/X”)
可以使用
read.cvs(“project/data.csv”)
。这就是你想要的吗?不,因为路径仍然依赖于X。如果你要运行程序,会出现一条错误消息,表明路径指向X。关于
read.csv(粘贴0(“C:/Users/”,Sys.info()[“effective_user”],“/project/data.csv”)
?好的,你明白我的意思了。但我想我没有表达我真正想要的。“/project/data.csv”前面还有一些其他依赖于用户的内容。我将编辑我的问题。
#check if directory exists
dataDir <-
  if(dir.exists(paste0("C:/Users/",Sys.info()["effective_user"], "/Documents/cloud/project/"))){
    paste0("C:/Users/", Sys.info()["effective_user"],"/Documents/cloud/project/")
  } else if(dir.exists(paste0("C:/Users/", Sys.info()["effective_user"],"/Desktop/cloud/project/"))) {
    paste0("C:/Users/", Sys.info()["effective_user"],"/Desktop/cloud/project/")
  }


#if exists then read in
if(!is.null(dataDir)){ read.csv(paste0(dataDir,"data.csv")) }