Я хочу получить среднее время между группировкой заказов Клиентом. Я хочу сделать это с помощью sqldf библиотеки Р.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 (мошенника, заявление, bind.data): ошибка в заявлении: возле "(": ошибка синтаксиса»
'LAG (ORDERS_DATE) OVER (PARTITION клиентского ORDER BY ORDERS_DATE)' является особенностью SQL Server; 'sqldf' (вероятно) использует SQLite как свой SQL-движок, поэтому это не сработает. – nrussell
По умолчанию для sqldf является SQLite, но при необходимости можно использовать другие драйверы. См. Документы. –