Конвертировать ежемесячные данные из одного типа в другой - PullRequest
1 голос
/ 12 февраля 2020

У меня есть столбец с месячной датой, который имеет такой тип (номер месяца, _, год):

Date
9_2018
1_2013
12_2014

et c.

Я хочу преобразовать эту дату отформатировать в дату следующей формы (год, месяц):

New_Date
201809
201301
201412

Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 12 февраля 2020

Мы можем использовать zoo::as.yearmon для преобразования даты, а затем использовать format для получения данных в требуемом формате.

format(zoo::as.yearmon(df$Date, "%m_%Y"), "%Y%m")
#[1] "201809" "201301" "201412"

Или это также можно сделать в базе R, вставив произвольную дату к значению год-месяц, которое мы имеем.

format(as.Date(paste0("1_", df$Date), "%d_%m_%Y"), "%Y%m")

данные

df <- structure(list(Date = structure(c(3L, 1L, 2L), .Label = c("1_2013", 
"12_2014", "9_2018"), class = "factor")),
class = "data.frame",row.names = c(NA, -3L))
1 голос
/ 12 февраля 2020

Заполнение нулей за месяц, а затем разделение на "_":

library(stringr)

mon <- sapply(strsplit(Date, "_"), FUN="[", 1)
mon <- str_pad(mon, width=2, pad="0")
year <- sapply(strsplit(Date, "_"), FUN="[", 2)
paste0(year,mon)
[1] "201809" "201301" "201412"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...