我正在尝试使用readxl::read_excel将表格数据从excel电子表格(.xlsx和.xls)导入到R中。在从桌面读取电子表格时,我已经成功地使用了此功能,但我现在无法从我的Documents文件夹中读取。
我尝试读取同一文件的.xlsx和.xls格式,得到两个不同的错误信息。
# 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 package,从同一个目录导入.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)发布于 2016-10-15 00:22:33
我遇到了同样的问题。当我将工作目录设置为excel文件的基本位置,然后在读取的excel中使用相对路径访问该目录时,就会发生这种情况。
一旦我重新启动R,并将我的工作目录保留为默认目录,然后在read_excel函数中使用完整的文件路径,我的exdir错误就消失了。
如果这对你有效,请告诉我。我还在使用windows764位系统的网络驱动器上工作。
发布于 2021-11-03 12:15:48
当前工作目录由RStudio集成开发环境显示在控制台窗格的标题区域中。您还可以通过在控制台中运行命令getwd()来检查当前的工作目录。
https://stackoverflow.com/questions/39495737
复制相似问题