Преобразовать число c в указанный c формат даты в R - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь преобразовать числовой c столбец «ДАТА» в столбец даты «NEW_DATE» в формате ГГГГММ:

DATE        NEW_DATE
1.2020      202001

Я попытался as.Date, но он возвращает следующую ошибку:

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

Функция структуры сообщает, что столбец num, поэтому не уверен, как поступить.

Ответы [ 2 ]

1 голос
/ 16 марта 2020

Мы можем использовать zoo as.yearmon и затем преобразовать его в format.

format(zoo::as.yearmon('1.2020', "%m.%Y"), "%Y%m")
#[1] "202001"

Так что для кадра данных мы можем сделать:

df$NEW_DATE <- format(zoo::as.yearmon(df$DATE, "%m.%Y"), "%Y%m")

Или в базе R мы можем вставить произвольную дату и преобразовать в дату.

df$NEW_DATE <- format(as.Date(paste0(df$DATE, ".1") "%m.%Y.%d"), "%Y%m")
0 голосов
/ 16 марта 2020

Базовый раствор R:

# Isolate the month: 

date_month <- gsub("\\..*", "", df$DATE)

# Store the NEW_DATE  vector in desired format: 

df$NEW_DATE <- paste0(gsub(".*\\.", "", df$DATE),
               ifelse(nchar(date_month) == 1, paste0("0", date_month), date_month))

# Data: 

df <- data.frame(DATE = "1.2020", stringsAsFactors = FALSE)
...