2016-11-24 7 views
0

MongoDBの日付をRの日付オブジェクトに変換しようとしました。私は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) 

日< -data $日はベクトルを返す使用:

[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") 

誰かが親切に私はこれを達成し、私が間違っているのかを説明することができますどのように説明することができます使用してフォーマットを変更しようとした

多くのおかげで、事前

+0

mongodbに日付を格納するフィールドがあり、これを読んでR日付に変換したいとします。私は正しい? –

+0

正確には、このフィールドはmongodbのiso日付です。 – FRieux

+0

ok参考資料1.#mongo.bson.from.listは、Rのプリミティブデータ型(整数、数値、論理、文字)を自動的にMongoDBデータ型に変換します。 #あなたは、日付の種類のためにいくつかの仕事をする必要があります。 #ISODateデータでbsonを構築するには、POSIXctオブジェクトとして渡します。 date_string < - "2014-10-11 12:01:06" query <-mongo.bson.from.list(list(date = as。 #タイムゾーン引数に注意を払う #note、内部的なMongoDBストロークの日付はunixtime形式である: クエリ –

答えて

0

に私は同じ問題を持っていた、と私は2つの可能な解決策が見つかりました:

  1. RMongoの代わりにライブラリmongoliteを使用すると、 "2016-01-01 01:00:00"という形式の日付が与えられます。たとえば、format(yourTime, "%Y-%m-%d %H:%M:%OS3")を呼び出してミリ秒を回復します。
  2. 両方のライブラリを使用すると、集計フレームワークを使用することができ、プロジェクトステージで日付を文字列に変換します(例:"$dateToString": { "format": "%Y-%m-%d %H:%M:%S.%L", "date": "$yourTime" })。前の例のように再度フォーマットします。

私はそれが役に立ちそうです。

Farewell

関連する問題