Любой из них будет отставать от столбца a
:
sqldf("select a, lag(a) over () as b from asdff")
sqldf("select a, lag(a) over (order by rowid) as b from asdff")
sqldf("select x.a, y.a as b
from asdff x
left join asdff y on x.rowid = y.rowid + 1")
Если у данных есть столбец, соответствующий временам, то его можно использовать и разрешить отставание по времени, даже если данныерамка уже не заказана к тому времени. Со встроенным фреймом данных BOD
(который имеет столбцы Time
и demand
)
sqldf("select *, lag(demand) over (order by Time) as prev from BOD")
Для получения дополнительной информации см .: https://www.sqlite.org/windowfunctions.html