Ошибка при генерации последовательности дат - "от" должно быть конечным числом. - PullRequest
0 голосов
/ 05 августа 2020

У меня есть таблица, и я пытаюсь создать последовательность дат. Это простой код, я пробовал несколько вариантов и не могу понять, почему получаю сообщение об ошибке.

df <- fread("
indexdt
01-02-2019
08-10-2019")

setDT(df)[,id := .I] 
df[, .(indexdt, dates = format(seq(as.Date(indexdt, "%m/%d/%Y"), 
                                    length.out=3, by = "1 day"), "%m/%d/%Y")) , by=id]

Ошибка - Ошибка в seq.int (from, by = by, length.out = length .out): 'from' должно быть конечным числом

1 Ответ

1 голос
/ 05 августа 2020

Проблема связана с форматом

%m-%d-%Y

вместо

%m/%d/%Y

Если мы сделаем исправление, оно сработает

df[, .(indexdt, dates = format(seq(as.Date(indexdt, "%m-%d-%Y"), 
                          length.out=3, by = "1 day"), "%m-%d-%Y")) , by=id]
#   id    indexdt      dates
#1:  1 01-02-2019 01-02-2019
#2:  1 01-02-2019 01-03-2019
#3:  1 01-02-2019 01-04-2019
#4:  2 08-10-2019 08-10-2019
#5:  2 08-10-2019 08-11-2019
#6:  2 08-10-2019 08-12-2019

Использование неправильного формата приведет к NA значениям

df[, as.Date(indexdt, "%m/%d/%Y")]
#[1] NA NA
...