Преобразование 3 столбцов (день, месяц, год) в один столбец даты R - PullRequest
0 голосов
/ 10 марта 2020

У меня есть фрейм данных с именем date, который выглядит следующим образом:

 Day     Month      Year
 2       April      2015
 5       May        2014
 23      December   2017

Этот код:

date <- data.frame(Day = c(2,5,23),
                   Month = c("April", "May", "December"),
                   Year = c(2015, 2014, 2017))

Я хочу создать новый столбец, который выглядит следующим образом:

Day     Month      Year     Date
 2       April      2015    2/4/2015
 5       May        2014    5/5/2014
 23      December   2017    23/12/2017

Чтобы сделать это, я попытался:

data <- data %>%
    mutate(Date = as.Date(paste(Day, Month, Year, sep = "/"))) %>% 
    dmy()

Но я получил ошибку, которая говорит:

Error in charToDate(x) : 
   character string is not in a standard unambiguous format

Есть ли очевидная ошибка, что я ' я не вижу?

Большое спасибо.

1 Ответ

2 голосов
/ 10 марта 2020

Нам нужно использовать соответствующий формат в as.Date. Используя базу R, мы можем сделать

transform(data, Date = as.Date(paste(Day, Month, Year, sep = "/"), "%d/%B/%Y"))

#  Day    Month Year       Date
#1   2    April 2015 2015-04-02
#2   5      May 2014 2014-05-05
#3  23 December 2017 2017-12-23

Или с dplyr и lubridate

library(dplyr)
library(lubridate)

data %>% mutate(Date = dmy(paste(Day, Month, Year, sep = "/")))

. Вы можете добавить format(Date, "%d/%m/%Y"), если вам нужно изменить формат отображения.

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