【发布时间】:2018-04-18 08:55:08
【问题描述】:
我的桌面上有两个文件夹,它们包含相同的文件。看来,包含非英文字符的目录(路径)在我当前的 windows 环境中不起作用。
> setwd("C:/Users/my_user/Desktop/folder_name_including_only_english_characters")
> list.files()
[1] "test.csv" "test.jpg" "test.pdf" "Test.R" "test.sql" "test.xlsx"
> setwd("C:/Users/my_user/Desktop/folder_name_including_non_english_characters_like_ıüö")
> list.files()
character(0)
我不确定这是否与 R 或 windows 10 的设置有关。
我的另一台电脑没有这样的问题。
更新:
在我最近的尝试中,我注意到,虽然 list.files() 函数失败,但 R 仍然可以使用内置的 read.csv2 函数从包含非英文字符的目录中读取文件。但是,当我尝试读取 xlsx 文件时,例如:
openxlsx::read.xlsx(paste0("C:/Users/my_user/Desktop/folder_name_including_non_English_characters_like_ıüö","/test.xlsx"))
它给出了以下错误。 (顺便说一句,openxlsx::read.xlsx() 函数成功地从只包含英文字符的目录中读取文件。
Error in file(con, "r") : invalid 'description' argument
In addition: Warning message:
In unzip(xlsxFile, exdir = xmlDir) : error 1 in extracting from zip file
我怀疑函数 list.files() 失败的原因和使用 openxlsx::read.xlsx() 函数的错误可能是相同的。
我的问题是:我应该更改哪些设置才能使 R 成功识别包含非英文字符的目录?
【问题讨论】:
-
在
setwd之后,执行getwd以检查当前是否设置了工作目录。如果没有,请尝试删除非英语单词中的勾号。 -
它设置工作目录没有任何错误信息。 setwd("C:/Users/my_user/Desktop/folder_name_including_non_english_characters_like_ıüö") > getwd() "C:/Users/my_user/Desktop/folder_name_including_non_english_characters_like_ıüö"
-
尝试使用
Sys.setlocale(locale = "your_language")更改您的 R 会话系统语言。 -
感谢您的建议;它已经设置: Sys.getlocale() "LC_COLLATE=Turkish_Turkey.1254;LC_CTYPE=Turkish_Turkey.1254;LC_MONETARY=Turkish_Turkey.1254;LC_NUMERIC=C;LC_TIME=Turkish_Turkey.1254" 。还有其他建议吗?
标签: r path character non-english