Здравствуйте и спасибо, что вы здесь.
Я пытаюсь преобразовать даты с помощью as.yearmon, но результаты, которые я получаю, странные, и я не знаю, как это исправить; Я пытался искать здесь и в официальном руководстве по пакетам, но не нашел кого-то с такой же проблемой. Проблема в том, что я преобразовал столбец набора данных, который был отформатирован как «месяц/год», с помощью as.yearmon, но результаты были неправильными.
Например, первые 3 значения столбца исходного DF: «1/86», «2/86», «3/86».
После использования этой функции для их преобразования:
library(zoo)
Dates <- Returns
Dates$Month<- zoo::as.yearmon(Dates$Month, "%m / %Y")
[Где «Возврат» — это исходный фрейм данных, а дата — новый с измененными датами.]
Результат, который я получил, вместо «поколение 1986», «февраль 1986», «март 1986» был «поколение 0086», «февраль 0086», «март 0086», и я не знаю, почему.
[Мне не следует, что "gen", "feb", "mar" по-итальянски; Я не знаю, имеет ли это значение, и я не знаю, как изменить это на «Ян», «Фев», «Мар», что, я думаю, мне тоже придется сделать]
Заранее спасибо за вашу помощь, если что-то не понятно, просто дайте мне знать; Я еще новичок.
Вам нужно использовать "%m/%y" вместо "%m/%Y". Ваши даты не имеют обозначения полного года.
x <- c("1/86", "2/86", "3/86")
zoo::as.yearmon(x, "%m/%y")
[1] "jan 1986" "feb 1986" "mrt 1986"
Функции даты возвращают имена в местной локали. Если вы хотите их на английском языке:
Sys.setlocale("LC_TIME", "English")
zoo::as.yearmon(x, "%m/%y")
[1] "Jan 1986" "Feb 1986" "Mar 1986"
Каждый раз, когда вы перезапускаете R, это будет установлено обратно на ваш язык.
Дополнительная информация здесь на СО
Они являются эквивалентом локальной системы. См. обновленный ответ для английского языка.
Ты настоящий MVP.