我的问题几乎是相同的 as this one.简而言之,我使用dplyr(以及RMySQL)导入带有日期时间列的MySQL表,我想将其转换为R中的日期.在上面链接的问题中,没有答案被张贴,只有哈德利评论. OP显然根据所做的评论找到了解决方案.我从Hadley的评论中了解到我可以通过将列作为日期正确导入R来解决问题.然后就不需要使用as.Date了.但是,我找不到如何用dplyr和RMySQL做到这一点.
我不知道如何发布一个完全可重现的例子,因为它是一个MySQL数据库连接,但我会发布我的代码:
如果我尝试:
pedidos <- my_db %>%
tbl("pedidos") %>%
mutate(test = as.Date(DateSent))
然后我跑:
pedidos
R回报:
FUNCTION AS.DATE does not exist
就像其他问题中的OP一样,我可以使用collect()解决问题,但是它会破坏不将数据复制到内存中的目的.这里有一些关于MySQL数据类型的信息
DateSent是日期时间
和R sessionInfo():
R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
locale:
[1] LC_COLLATE=Portuguese_Brazil.1252
[2] LC_CTYPE=Portuguese_Brazil.1252
[3] LC_MONETARY=Portuguese_Brazil.1252
[4] LC_NUMERIC=C
[5] LC_TIME=Portuguese_Brazil.1252
attached base packages:
[1] stats graphics grDevices utils datasets
[6] methods base
other attached packages:
[1] RMySQL_0.10.11 DBI_0.5-1 dplyr_0.5.0
[4] digest_0.6.12
loaded via a namespace (and not attached):
[1] lazyeval_0.2.0 magrittr_1.5 R6_2.2.0
[4] assertthat_0.1 rsconnect_0.5 tools_3.3.1
[7] tibble_1.2 Rcpp_0.12.8
最佳答案 我也应对了datetime列问题,但是简单的说法是,用 RMariaDB替换当前的MySQL DBI驱动程序是解决方案.
正如在这个问题中提到的评论,这个问题实际上已经在RMySQL from 0.11上游的开发中得到了解决,但唯一的问题是这个版本不能从官方CRAN存储库中获得.换句话说,如果您不介意通过devtools手动安装软件包,那么从RMySQL 0.11源代码安装就是这个问题的答案.
但正如自述文件中正式声明的那样,RMariaDB软件包将作为RMySQL驱动程序的替代品.当然,Datetime Support的功能也包含在RMariaDB包的主流中.更重要的是,版本1.0.6的最新版本可从CRAN官方存储库获得.