У меня есть фрейм данных с датами, и я хочу преобразовать даты в порядковые числа,
> glimpse(df)
Observations: 211,797
Variables: 42
$ Churn <fct> No, No, No, No, No, No, No, No, No, No, No, No, No, No, No, No, No, No, No, No, No, No, No, No, No, No, No, No…
$ min_date <date> 2017-02-13, 2017-02-13, 2017-02-13, 2017-02-13, 2017-02-13, 2017-02-13, 2017-02-13, 2017-02-13, 2017-02-13, 2…
$ min_NoPaid_date <date> 2017-02-13, 2017-02-13, 2017-02-13, 2017-02-13, 2017-02-13, 2017-02-13, 2017-02-13, 2017-02-13, 2017-02-13, 2…
$ min_paid_date <date> 2017-02-27, 2017-02-27, 2017-02-27, 2017-02-27, 2017-02-27, 2017-02-27, 2017-02-27, 2017-02-27, 2017-02-27, 2…
$ max_date <date> 2019-05-14, 2019-05-14, 2019-05-14, 2019-05-14, 2019-05-14, 2019-04-27, 2019-05-14, 2019-05-14, 2019-05-14, 2…
$ max_NoPaid_date <date> 2017-02-26, 2017-02-26, 2017-02-26, 2017-02-26, 2017-02-26, 2019-04-27, 2017-02-26, 2017-02-26, 2017-02-26, 2…
$ max_paid_date <date> 2019-05-14, 2019-05-14, 2019-05-14, 2019-05-14, 2019-05-14, 2019-04-26, 2019-05-14, 2019-05-14, 2019-05-14, 2…
> str(df)
Classes ‘data.table’ and 'data.frame': 211797 obs. of 42 variables:
9173842 11288931 9167070 4310995 11289083 8816781 ...
$ Churn : Factor w/ 2 levels "No","Yes": 1 1 1 1 1 1 1 359 360 361 362 363 364 365 366 367 368 ...
$ min_date : Date, format: "2017-02-13" "2017-02-13" "2017-02-13" ...
$ min_NoPaid_date : Date, format: "2017-02-13" "2017-02-13" "2017-02-13" ...
$ min_paid_date : Date, format: "2017-02-27" "2017-02-27" "2017-02-27" ...
$ max_date : Date, format: "2019-05-14" "2019-05-14" "2019-05-14" ...
$ max_NoPaid_date : Date, format: "2017-02-26" "2017-02-26" "2017-02-26" ...
$ max_paid_date : Date, format: "2019-05-14" "2019-05-14" "2019-05-14" ...
Я попытался создать функцию для применения всех столбцов даты.
date_to_integer <- function(x) {
y = as.integer(format(as.Date(x), "%Y%m%d"))
y
}
churn_data_tbl[4:9] <- lapply(churn_data_tbl, date_to_integer)
Однако я получаю Error in charToDate(x) : character string is not in a standard unambiguous format
.
Может ли кто-нибудь помочь мне, как я могу обойти это?
Заранее спасибо