【发布时间】:2016-11-24 13:19:58
【问题描述】:
我尝试将 MongoDB 日期转换为 R 日期对象。我用
library(RMongo)
library(data.table)
mongo<-mongoDbConnect("test", host = "127.0.0.1", port = "27017")
event<-dbGetQuery(mongo, "event", "", 0, 1000)
data<-as.data.table(event)
date
[1] "Fri Oct 28 13:15:00 CEST 2016" "Fri Oct 28 16:00:00 CEST 2016" "Fri Nov 04 18:30:00 CET 2016" "Fri Nov 04 18:45:00 CET 2016"
我无法转换此向量。我尝试了以下代码:
as.Date(date, format = "%a %b %d %H:%M:%S %Y")
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
strptime(date, format = "%a %b %d %H:%M:%S %Y")
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
我也尝试使用
修改格式s.POSIXct(date, "%a %b %d %H:%M:%S %Z %Y")
Error in as.POSIXct.default(date, "%a %b %d %H:%M:%S %Z %Y")
有人可以解释一下我是如何做到这一点的,并解释我做错了什么..
在此先感谢
【问题讨论】:
-
您在 mongodb 中有一个存储日期的字段,现在您想读取并将其转换为 R 日期。我说的对吗?
-
没错,这个字段就是mongodb中的iso date。
-
ok 几个示例供您参考 1. # mongo.bson.from.list 自动将 R 原始数据类型(整数、数字、逻辑、字符)转换为 MongoDB 数据类型。 # 你必须为日期类型做一些额外的工作。 # 要使用 ISODate 数据构建 bson,您应该将其作为 POSIXct 对象传递: date_string
-
2. d
-
感谢您的帮助。我正在尝试理解您的示例,以便将它们应用到我的上下文中。可以肯定的是,我在 mongo 数据库上是只读的,我查询数据库以提取 data.table 事件,其中包含格式为“Fri Oct 28 13:15:00 CEST 2016”的某个日期的变量。我尝试在 R 中转换 POSIxct 中的日期,但出现错误(返回 NA)。然后,如果我理解您的示例,我需要将查询修改为 mongoDB 以转换 Date ?