как заставить r читать файлы из каталогов, содержащих неанглийские символы

На моем рабочем столе есть две папки, в которых находятся одни и те же файлы. Похоже, каталоги (пути), содержащие неанглийские символы, не работают в моей текущей среде 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 успешно распознавал каталоги, содержащие неанглийские символы?


person kzmlbyrk    schedule 06.11.2017    source источник
comment
После setwd выполните getwd, чтобы проверить, установлен ли в настоящий момент рабочий каталог. Если нет, попробуйте убрать галочки с неанглийских слов.   -  person patL    schedule 06.11.2017
comment
он устанавливает рабочий каталог без каких-либо сообщений об ошибке. setwd (C: / Users / my_user / Desktop / имя_папки_including_non_english_characters_like_ıüö) ›getwd () C: / Users / my_user / Desktop / имя_папки_including_non_english_characters_like_ıüö   -  person kzmlbyrk    schedule 06.11.2017
comment
Попробуйте изменить системный язык сеанса R с помощью Sys.setlocale(locale = "your_language").   -  person patL    schedule 06.11.2017
comment
Спасибо за предложения; он уже установлен: 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. Любое другое предложение?   -  person kzmlbyrk    schedule 06.11.2017


Ответы (2)


После того, как я часами бился головой, Sys.glob(*.*) - единственный возможный вариант, когда list.files терпит неудачу.

> Sys.setlocale(locale = 'Turkish_Turkey.1254')
[1] "LC_COLLATE=Turkish_Turkey.1254;LC_CTYPE=Turkish_Turkey.1254;LC_MONETARY=Turkish_Turkey.1254;LC_NUMERIC=C;LC_TIME=Turkish_Turkey.1254"
> setwd('C:/Users/SA31/non_english_characters_like_ıüö')
> list.files()
character(0)
> Sys.glob('*.*')
[1] "New Text Document.txt"

Обновленный код без setwd:

> Sys.glob('C:/Users/SA31/non_english_characters_like_ıüö/*')
[1] "C:/Users/SA31/non_english_characters_like_ıüö/New Text Document.txt"
[2] "C:/Users/SA31/non_english_characters_like_ıüö/New folder"
person amrrs    schedule 06.11.2017
comment
спасибо, работает нормально. Интересно, можно ли использовать Sys.glob (), передав в него каталог, отличный от предопределенного рабочего каталога. Если нет, это означает, что необходимо последовательно использовать setwd (), когда мы хотим читать данные из разных каталогов. - person kzmlbyrk; 06.11.2017
comment
Пожалуйста, проверьте обновленный код, вы можете использовать paste0 для построения такого пути - person amrrs; 06.11.2017
comment
Было бы здорово, если бы вы могли сообщить нам, если это тот ответ, которого вы ожидали! - person amrrs; 06.11.2017
comment
Конечно, я постараюсь как можно скорее сообщить вам. - person kzmlbyrk; 06.11.2017
comment
amrrs, еще раз спасибо за ваши усилия. Ваше последнее предложение - хороший обходной путь для печати файлов в этих проблемных каталогах. Однако, похоже, мне нужно решение, которое исправляет необходимые настройки в моей среде R или Windows. Пожалуйста, ознакомьтесь с обновлением по основному вопросу. - person kzmlbyrk; 07.11.2017

Изменение языкового стандарта системы для программ, отличных от Unicode, на турецкий язык устранило проблему. «Все элементы панели управления»> «Регион и язык»> «Административный»> «Изменить язык системы»

person kzmlbyrk    schedule 12.03.2019