Я хочу получить среднее время между группировкой заказов по клиенту. Я хочу сделать это с помощью библиотеки sqldf R.
Данные испытаний:
> test
+ CLIENT ORDERS_DATE
+ 1 2014-09-22
+ 1 2014-12-16
+ 2 2014-10-08
+ 2 2014-10-12
+ 2 2014-10-26
+ 2 2014-11-06
sqldf-код:
> avg.time.orders.before = sqldf("SELECT CLIENT , AVG(ORDERS_DATE - lag_orderdate) AS avg_time_between_orders
FROM (
SELECT CLIENT , ORDERS_DATE , LAG(ORDERS_DATE) OVER (PARTITION by CLIENT ORDER BY ORDERS_DATE) AS lag_orderdate
FROM test
)
GROUP BY CLIENT")
Я получаю следующее сообщение об ошибке: «Ошибка в sqliteSendQuery (con, statement, bind.data): ошибка в заявлении: рядом с «(»: синтаксическая ошибка»
LAG(ORDERS_DATE) OVER (PARTITION by CLIENT ORDER BY ORDERS_DATE)
— это функция SQL Server;sqldf
(скорее всего) использует SQLite в качестве механизма SQL, так что это не сработает. - person nrussell   schedule 08.11.2016