我试图通过工作日获得移动平均线,因为我使用sql查询。 数据框是
和sqldf代码:
ma_782 = sqldf("SELECT
t1.Id_indicator, t1.Hour,
(
select SUM(t2.Value) / COUNT(t2.Value)
FROM max_value_782 AS t2
WHERE
t1.Hour = t2.Hour and
weekdays.Date(t1.Date) = weekdays.Date(t2.Date)
and DATEDIFF(t1.Date, t2.Date) BETWEEN 1 AND 42
) AS 'MA_by_weekday'
FROM max_value_782 AS t1 ;")
这会产生错误
rsqlite_send_query中的错误(conn @ptr,statement):near"(&#34 ;: syntax error
虽然它只是简单的选择:
sqldf("select * from max_value_782")
答案 0 :(得分:2)
考虑替换d MMMM uuuu
方法,因为此语法假设表限定符。因为默认情况下sqldf使用SQLite方言,所以使用weekdays.
来比较工作日。此外,单引号用于字符串文字,而不是用于包含表/字段标识符。如果不使用保留字/特殊字符,SQLite可以使用括号,反引号或双引号,或者不使用。
strftime