R Как преобразовать формат даты - PullRequest
2 голосов
/ 16 июня 2020

Я хотел преобразовать следующую строку символов в формат даты:

string <- '22APR2020'
date <- as.Date(string, format='%d%b%y')
date
>>> NA

К сожалению, результат NA, и мне нужно преобразовать его как дату, чтобы иметь возможность вычислить время между двумя датами.

Спасибо

Ответы [ 3 ]

3 голосов
/ 16 июня 2020

Вы можете использовать пакет anytime:

library(anytime)
string <- '22APR2020'
anytime::anydate(string)
[1] "2020-04-22"
1 голос
/ 16 июня 2020

В случае сомнений всегда используйте lubridate:

string <- '22APR2020'
library(lubridate)
dmy(string)
[1] "2020-04-22"

здесь dmy - порядок появления даты, месяца и года.

1 голос
/ 16 июня 2020

Проблема в настройках вашего локали. Вероятно, установлен язык, на котором четвертый месяц не обозначается сокращенно как «APR».

Sys.setlocale("LC_TIME", "French")

string <- '22APR2020'
as.Date(string, format='%d%b%Y')
#[1] NA

Sys.setlocale("LC_TIME", "German")
as.Date(string, format='%d%b%Y')
#[1] "2020-04-22"

Также обратите внимание, что в строке формата используется заглавная Y. Это важно. y относится только к десятилетию (это случайно дало бы тот же результат для 2020 года, но дало бы неправильный результат для 2021 года).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...