Как извлечь «месяц» из даты, указанной в символьной форме? - PullRequest
0 голосов
/ 03 июня 2019

Я должен извлечь месяц из формата даты, который выглядит следующим образом: 01-Dec-2016 и т. Д. Он не в стандартном формате даты, и R не читает его как дату

Я пыталсяввод кода для R, который будет считывать его как дату, но при этом я получаю сообщение об ошибке

event_date<- as.Date(ACLED_combined$event_date)

Ошибка в charToDate (x): символьная строка не имеет стандартного однозначного формата

В качестве заключительного упражнения я должен разделить данные на кварталы, и это зависит от года и месяца для мероприятия.Для этого мне сначала нужно перевести дату в месяц.Любая помощь будет оценена!

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Вы можете преобразовать строку как объект времени данных, вызвав функцию as.POSXct ().Затем вы можете использовать функцию format (), чтобы просто показать месяц с 1 по 12. Ниже приведен пример:

> datestring <- c('01-Dec-2016', '01-Jan-2017','01-Feb-2017')
> datetime <- as.POSIXct(datestring, format = '%d-%b-%Y')
> datetime
[1] "2016-12-01 CST" "2017-01-01 CST" "2017-02-01 CST"
> as.numeric(format(datetime, '%m'))
[1] 12  1  2
0 голосов
/ 03 июня 2019

попробуйте использовать пакет lubridate.

library(lubridate)

# creates a date object
dmy("01-Dec-2016")

# using date object, you can find the month - you have several options
lubridate::month(dmy("01-Dec-2016"))
lubridate::month(dmy("01-Dec-2016"), label = TRUE)
lubridate::month(dmy("01-Dec-2016"), label = TRUE, abbr = FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...