Как вычесть/добавить дни из даты?

Я пытаюсь создать папки для хранения получений по запросу данных. Я хочу маркировать папки днем тех данных в получении по запросу.

Напр. Я вытягиваю 5 дней назад данные из mysql, от которого я хочу назвать папку датой 5 дней назад.

MySQL может легко обработать арифметику дат. Я не уверен точно, как R делает это. Я должен просто вычесть соответствующее число секунд в POSIXct и затем преобразовать в POSIXlt для именования папки MM_DD_YYYY?

Или есть ли лучший путь?

48
задан Jaap 23 October 2017 в 05:54
поделиться

2 ответа

Просто вычтите число:

> as.Date("2009-10-01")
[1] "2009-10-01"
> as.Date("2009-10-01")-5
[1] "2009-09-26"

Поскольку у класса Date есть только дни, вы можете просто выполнять с ним базовые арифметические операции.

Если вы по какой-то причине хотите использовать POSIXlt, вы можете использовать его слоты:

> a <- as.POSIXlt("2009-10-04")
> names(unclass(as.POSIXlt("2009-10-04")))
[1] "sec"   "min"   "hour"  "mday"  "mon"   "year"  "wday"  "yday"  "isdst"
> a$mday <- a$mday - 6
> a
[1] "2009-09-28 EDT"
82
ответ дан 7 November 2019 в 12:06
поделиться

Ответ, вероятно, зависит от формата вашей даты, но вот пример использования класса Date :

dt <- as.Date("2010/02/10")
new.dt <- dt - as.difftime(2, unit="days")

Вы даже можете играть с разными единицами измерения, такими как недели.

47
ответ дан 7 November 2019 в 12:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: