Проблема с форматом as.Date% b в коротком названии месяца, написанном точкой R - PullRequest
0 голосов
/ 12 октября 2018

У меня проблема с R и короткими сокращениями месяца в Windows.

Я только что обновил свой компьютер до Windows 10, локальная настройка Windows на испанском, но R был переконфигурирован на английском (полагаю,).

У меня есть некоторые данные, где Дата в формате *"%b %d, %Y"* и на испанском, поэтому, если дата January 1st 2018, она будет записана как ***ene 1, 2018***.

Перед обновлениемWindows, у меня не было проблем с установкой даты как:

as.Date("ene 1, 2018", format = "%b %d, %Y")

, которая в свою очередь вернула

"2018-01-01"

как и ожидалось.

После обновления у меня возникли проблемы с чтением этого формата дат, поэтому если я посмотрел на sessionInfo(), он показал мне LC_TIME = C.Я изменил его на испанский с Sys.setlocale("LC_TIME","Spanish")

Теперь, если я напишу format(as.Date('2018-01-01'), "%b %d, %Y"), я получу

"ен. 01, 2018" *

(обратите внимание, что после короткого названия месяца есть точка)

Я хочу удалить точку в ене. , потому что мои даты пишутся без точки, поэтому теперь обработанные даты дают мне NA .

Что немного забавно, так это то, что, добавив Sys.setlocale("LC_TIME","Spanish") в мой код, а затем запустив его, я получаю столбец дат в порядке.Но если я запускаю его второй раз, я получаю NA.Поэтому мне нужно перезапустить R, если я хочу запустить код во второй раз, чтобы получить даты и отчеты (используя R Markdown) без ошибок.

Какую конфигурацию мне следует использовать?Или есть другое решение этой проблемы?

Если я напишу sessionInfo(), я получу:

язык: LC_COLLATE = Spanish_Chile.1252 LC_CTYPE = Spanish_Chile.1252 LC_MONETARY = Spanish_Chile.1252 LC_NUMERIC = C LC_TIME = Spanish_Spain.1251050 *

Спасибо!

...