У меня есть фрейм данных в базе данных с измерением даты, который я извлек с помощью RPostgres. Каждая «дата» имеет формат «ГГГГ-ММ-ДД. Я хотел бы добавить новый столбец дат (помеченный как «lookback_date»), который на год раньше, чем исходные даты.
Для ясности, если бы «датой» наблюдения было «2000-01-01», я бы хотел добавить к этому наблюдению новую «lookback_date» - «1999-01-01». К сожалению, я не могу понять, как это сделать. Обычно я бы использовал Lubridate, но, насколько я могу судить, он не работает с dbplyr. Вот оптимизированная версия моего кода. Все в моем фактическом коде работает нормально до функции изменения.
# Packages
library(dbplyr)
library(RPostgres)
# Connect to db
drv <- dbDriver("Postgres")
# Setup connect to db
conn <- dbConnect(drv,
dbname = etc,)
# Define table to use in db
table <- tbl(conn, in_schema("xyz", "abc"))
#Select columns and filter
base_data <- table %>%
#Filter for pertinent data
filter(date > as.Date("2018-01-01") & date <= as.Date("2020-01-01"))
modified_data <- base_data %>%
mutate(lookback_date = date - 365)
Есть ли другой способ создать этот новый столбец дат?
Спасибо!
dbplyr
преобразует в SQL и выполнит на стороне сервера? Вот почему я предполагаю, что вы не хотите использоватьlubridate
. - person Adam   schedule 13.02.2021