如何使用 sqldf 包提取月份

How can I extract the month using sqldf package

我试图通过使用 sqldf 程序包和月份函数获取基于日期分组的视图,但出现错误:Error in sqliteSendQuery(con, statement, bind.data) : error in statement: no such function: month

这是我的查询:s<-sqldf("select month(dateTime),sum(wolfs) group by dateTime")

附上玩具数据框:

 df <- read.table(text = "dateTime         birds    wolfs     snakes
                         2014-05-21        9         7    a
                         2014-04-28        8         4    b
                         2014-04-13        2         8    c
                         2014-03-12        2         3    a
                         2014-02-04        8         3    a
                         2014-02-29        1         2    a
                         2014-01-17        7         1    b
                         2014-01-16        1         5    c
                         2014-09-20        9         7    c
                         2014-08-21        8         7    c ",header = TRUE)

如何使用 sqldf 包提取月份?

我怀疑您已经习惯了 SQL 服务器,但是在您的案例中使用的 sqldf 后端是 SQLite,其中没有 MONTH 功能。试试这个:

R> sqldf("SELECT strftime('%m', dateTime) AS Month
            ,SUM(wolfs) AS Wolves
         FROM df
         GROUP BY strftime('%m', dateTime)")
#    Month Wolves
#  1    01      6
#  2    02      5
#  3    03      3
#  4    04     12
#  5    05      7
#  6    08      7
#  7    09      7