私は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
2番目のメッセージは、ここでデータを読み書きする権限がないと思っていましたが、ここでは常にフォルダ/ファイルを作成しています。私は同じディレクトリから.csvファイルをインポートするために、別のRライブラリ、readrパッケージを使用しました。
# 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を使用していますが、ドキュメントフォルダは実際にはネットワークドライブです。 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)
はい!デフォルトではネットワーク上のディレクトリなので、実際にグローバルオプションのデフォルト作業ディレクトリを変更する必要がありました。だから、私は自分のデスクトップ上のどこかにデフォルトのwdを変更しました。今ではフルパスを使って任意のネットワークドライブからファイルを読むことができます。助けてくれてありがとう! – georgemirandajr