2016-09-14 137 views
1

我想使用readxl :: read_excel将excel电子表格(.xlsx和.xls)中的表格数据导入到R中。阅读时读取此函数的成功来自桌面的电子表格,但是我现在无法从我的文档文件夹读取。使用readxl时出错:'exdir'不存在

我试着读同一文件的.xlsx和.xls格式,并得到2个不同的错误消息。

# Check the working directory 
[1] "\\\\isdowfsv04/D100Home/e525902" 

# Read .xlsx 
specs <- read_excel("Class Specs Sept 2016.xlsx") 

Error: 'exdir' does not exist 

# Read .xls 
specs <- read_excel("Class Specs Sept 2016.xls") 

Error: path[1]="\\isdowfsv04/D100Home/e525902/Class Specs Sept 2016.xls": Access is denied 

第二条消息让我觉得我没有权限来这里读/写数据,但我在这里创建文件夹/文件中的所有时间。我甚至使用过另一个R库readr软件包来从同一目录中导入.csv文件。

# Using readr to import .csv version of the file works fine. 
specs <- read_csv("\\\\isdowfsv04/D100Home/e525902/Class Specs Sept 2016.csv") 

根据我见过的其他帖子,这似乎是一个权限问题,但我不清楚如何解决它。

我尝试使用Sys.setenv()将临时文件夹位置更改为我知道我有权写入的地方(即桌面),因为我认为readxl在读取数据时使用了这些路径。但是这没有奏效,因为我得到了完全相同的错误信息。

Sys.getenv(c("TEMP", "TMP")) 
             TEMP          TMP 
"C:\\Users\\e525902\\AppData\\Local\\Temp"  "C:\\Users\\e525902\\AppData\\Local\\Temp" 

# Change temp file paths to the Desktop 
Sys.setenv(TEMP = "C:\\Users\\e525902\\Desktop") 
Sys.setenv(TMP = "C:\\Users\\e525902\\Desktop") 

我在工作时使用电脑,Documents文件夹实际上是一个网络驱动器。我已经使用read_excel从其他网络文件夹导入.xlsx文件,但是这个给我带来麻烦。以下是我正在使用的系统的更多信息。

Sys.info() 
sysname      release      version 
       "Windows"      "7 x64" "build 7601, Service Pack 1" 
       nodename      machine      login 
      "10004053WDT"      "x86-64"     "e525902" 
        user    effective_user 
       "e525902"     "e525902" 

search() 
[1] ".GlobalEnv"  "package:readr"  "package:readxl" "tools:rstudio"  "package:stats"  
[6] "package:graphics" "package:grDevices" "package:utils"  "package:datasets" "package:methods" 
[11] "Autoloads"   "package:base" 

# R version 
version$version.string 
version.string R version 3.2.5 (2016-04-14) 

回答

0

我遇到了同样的问题。当我将工作目录设置到excel文件的基本位置,然后在读取excel中,使用相对路径到达目录时,发生在我身上。

一旦我重新启动R,而不是保留我的工作目录作为默认值,然后使用read_excel函数中的完整文件路径,我的exdir错误消失了。

让我知道这是否适合你。我也在使用Windows 7 64位系统的网络驱动器上工作。

+0

是的!我实际上不得不在全局选项中更改我的默认工作目录,因为我的默认值是网络上的一个目录。所以,我将我的默认wd更改为桌面上的某个位置,现在我可以使用完整路径从任何网络驱动器读取excel文件。谢谢您的帮助! – georgemirandajr