次の double 値のベクトルがありますx
。各要素は POSIX 日時を表します
x <- c(1417621083, 1417621204, 1417621384, 1417621564, 1417621623)
RJSONIOパッケージを使用しており、引き続き使用したいと考えています。
演習として、これらの値を JSON テキストに変換し、R に再度読み込んでみたいと思いますが、日時表現を簡単なリスト結果に変換するのに苦労しています。JSON では、日付を特別な形式にする必要があるため、値x
は次のように変換されます。
dates <- c("/new Date(1417621083)", "/Date(1417621204)", "/Date(1417621384)",
"/Date(1417621564)", "/Date(1417621623)")
RJSONIOパーサーdates
を介して 2 番目の任意のベクトルを実行すると、すべてがスムーズに進むように見えます。
library(RJSONIO)
make <- toJSON(list(date = dates, value = LETTERS))
次に、日付の R-json C ルーチンでオプションを使用して新しい JSON テキストを解析するstringFun
と、結果は 2 つの要素のリストになります。最初の要素はリストで、2 番目の要素は原子ベクトルです。
(read <- fromJSON(make, stringFun = "R_json_dateStringOp"))
# $date
# $date[[1]]
# [1] "2014-12-03 07:38:03 PST"
#
# $date[[2]]
# [1] "2014-12-03 07:40:04 PST"
#
# $date[[3]]
# [1] "2014-12-03 07:43:04 PST"
#
# $date[[4]]
# [1] "2014-12-03 07:46:04 PST"
#
# $date[[5]]
# [1] "2014-12-03 07:47:03 PST"
#
#
# $value
# [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M"
# [14] "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
しかし、私は 2 つのベクトルのリストを期待していました。
# $date
# [1] "2014-12-03 07:38:03 PST" "2014-12-03 07:40:04 PST"
# [3] "2014-12-03 07:43:04 PST" "2014-12-03 07:46:04 PST"
# [5] "2014-12-03 07:47:03 PST"
#
# $value
# [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q"
# [18] "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
への呼び出し内から結果を単純化する方法をいくつか試しましたがfromJSON()
、どれもうまくいきませんでした。ここに私の試みのいくつかがあります:
ハンドラーの使用 :これにより結果が単純化されますが、日付の再フォーマットに失敗します
h1 <- basicJSONHandler(simplify = TRUE)
fromJSON(make, handler = h1, stringFun = "R_json_dateStringOp")
# $date
# [1] "/new Date(1417621083)" "/Date(1417621204)"
# [3] "/Date(1417621384)" "/Date(1417621564)"
# [5] "/Date(1417621623)"
#
# $value
# [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M"
# [14] "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
simplify
議論を試す:私はこれのいくつかの異なる種類を試しましたが、どれもうまくいきませんでした.
fromJSON(make, simplify = StrictCharacter)
# $date
# [1] "/new Date(1417621083)" "/Date(1417621204)"
# [3] "/Date(1417621384)" "/Date(1417621564)"
# [5] "/Date(1417621623)"
#
# $value
# [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M"
# [14] "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
への呼び出しで日付の結果を単純化する方法はありfromJSON()
ますか?