使用 readxl 时出错:“exdir”不存在

Posted

技术标签:

【中文标题】使用 readxl 时出错:“exdir”不存在【英文标题】:Error when using readxl: 'exdir' does not exist 【发布时间】:2016-09-14 16:45:24 【问题描述】:

我正在尝试使用 readxl::read_excel 将表格数据从 excel 电子表格(.xlsx 和 .xls)导入 R。从 Desktop 读取电子表格时,我已成功使用此功能,但在读取时遇到问题现在我的 Documents 文件夹。

我尝试读取同一个文件的 .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")

我在工作中使用 PC,而 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)

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

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

当前工作目录由 RStudio IDE 显示在控制台窗格的标题区域内。您还可以通过在控制台中运行命令getwd() 来检查您当前的工作目录。

【讨论】:

以上是关于使用 readxl 时出错:“exdir”不存在的主要内容,如果未能解决你的问题,请参考以下文章

当架构中不存在字段时,如何防止 django 出错?

TemplateInputException:解析模板时出错****,模板可能不存在

解析模板时出错 [/],模板可能不存在或可能无法被任何已配置的模板解析器访问

Ratpack + Thymeleaf + shadowJar - 解析模板“home”时出错,模板可能不存在或无法访问

解析模板 [users/list] 时出错,模板可能不存在或可能无法被任何已配置的模板解析器访问

解析模板“home”时出错,模板可能不存在或可能无法被任何已配置的模板解析器访问