Tôi có vector sau các giá trị gấp đôi, x
, trong đó mỗi yếu tố đại diện cho một POSIX ngày thời gianĐơn giản hóa một nút POSIX với RJSONIO :: fromJSON()
x <- c(1417621083, 1417621204, 1417621384, 1417621564, 1417621623)
Tôi đang sử dụng RJSONIO gói, và muốn tiếp tục làm như vậy.
Như một bài tập, tôi muốn chuyển đổi các giá trị này thành văn bản JSON và sau đó đọc lại chúng vào R, nhưng gặp khó khăn khi đưa biểu diễn ngày tháng vào kết quả danh sách đơn giản. Trong JSON, ngày cần phải được trong một định dạng đặc biệt để các giá trị trong x
được chuyển đổi như sau:
dates <- c("/new Date(1417621083)", "/Date(1417621204)", "/Date(1417621384)",
"/Date(1417621564)", "/Date(1417621623)")
Khi tôi chạy dates
với một vector tùy ý thứ hai thông qua RJSONIO phân tích cú pháp, mọi thứ dường như đi thông suốt.
library(RJSONIO)
make <- toJSON(list(date = dates, value = LETTERS))
Sau đó, khi tôi phân tích văn bản JSON mới bằng cách sử dụng tùy chọn stringFun
với thói quen C R-json cho những ngày, kết quả là một danh sách hai yếu tố, yếu tố đầu tiên là một danh sách và thứ hai một vector nguyên tử .
(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"
Nhưng tôi đã mong đợi một danh sách của hai vectơ, và tôi thà có nó trong các hình thức
# $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"
Tôi đã thử nhiều cách để đơn giản hóa kết quả từ bên trong cuộc gọi đến fromJSON()
, và không ai trong số họ đã làm việc. Dưới đây là một vài nỗ lực của tôi:
Sử dụng một handler: này đơn giản hóa kết quả nhưng thất bại trong việc định dạng lại ngày
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"
Đang cố gắng lập luậnsimplify
: tôi đã cố gắng giống khác nhau của điều này và không ai làm việc.
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"
Có cách nào để đơn giản hóa kết quả cho các ngày trong cuộc gọi đến fromJSON()
?