2017-09-16 31 views
0

從JSON對象中刪除指定元素有人能告訴我如何使用R從JSON對象(dt_stop_time_update)中刪除指定元素(stop_sequence,stop_id,arrival_delay和departure_delay)?我輸出的示例如下:如何使用R

[ 
{ 
"dt_trip_info": { 
"trip_id": [ "10034820-LCBS 17_18-LCBS_SAT-Saturday-02" ], 
"start_time": [ "13:46:00" ], 
"start_date": [ "20170916" ], 
"route_id": [ "550-862" ] 
}, 
"dt_stop_time_update": { 
"stop_sequence": [  1,  2,  3,  4,  5,  6,   7,  8,  9,  10,  11,  12,  13,  14,  15,  16,   17,  18,  19 ], 
"stop_id": [ "310024", "313288", "313291", "311040", "311038", "311025",  "311020", "313278", "310665", "318126", "310667", "310660", "310653",  "310655", "310658", "310656", "310610", "310617", "310615" ], 
"arrival_time": [  0, 1.5055e+09, 1.5055e+09, 1.5055e+09, 1.5055e+09,  1.5055e+09, 1.5055e+09, 1.5055e+09, 1.5055e+09, 1.5055e+09, 1.5055e+09,  1.5055e+09, 1.5055e+09, 1.5055e+09, 1.5055e+09, 1.5055e+09, 1.5055e+09,  1.5055e+09, 1.5055e+09 ], 
"arrival_delay": [ 0, 30, 25, 9, -12, -1, -8, -40, -16, 9, 68, 31, 35, 7,  -22, 13, 8, -35, -35 ], 
"departure_time": [ 1.5055e+09, 1.5055e+09, 1.5055e+09, 1.5055e+09,  1.5055e+09, 1.5055e+09, 1.5055e+09, 1.5055e+09, 1.5055e+09, 1.5055e+09,  1.5055e+09, 1.5055e+09, 1.5055e+09, 1.5055e+09, 1.5055e+09, 1.5055e+09,  1.5055e+09, 1.5055e+09, 1.5055e+09 ], 
"departure_delay": [ 0, 30, 25, 9, -12, -1, -8, -40, -16, 9, 68, 31, 35,  7, -22, 13, 8, -35, -35 ] 
} 
}, 
  • 我只是想補充一點,元素的重複序列是不均衡的。我相信輸出結構是一個原子列表。

回答

0

您需要導入您的JSON到一個列表中,然後設置要下降到NULL

library(jsonlite) 

dat <- read_json("test.json") 

dat[[1]]$dt_stop_time_update$stop_sequence <- NULL 
dat[[1]]$dt_stop_time_update$stop_id <- NULL 
dat[[1]]$dt_stop_time_update$arrival_delay <- NULL 
dat[[1]]$dt_stop_time_update$departure_delay <- NULL 

toJSON(dat, pretty = TRUE) 

# [ 
# { 
#  "dt_trip_info": { 
#  "trip_id": [ 
#   ["10034820-LCBS 17_18-LCBS_SAT-Saturday-02"] 
#   ], 
#  "start_time": [ 
#   ["13:46:00"] 
#   ], 
#  "start_date": [ 
#   ["20170916"] 
#   ], 
#  "route_id": [ 
#   ["550-862"] 
#   ] 
#  }, 
#  "dt_stop_time_update": { 
#  "arrival_time": [ 
#   [0], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000] 
#   ], 
#  "departure_time": [ 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000], 
#   [1505500000] 
#   ] 
#  } 
# } 
# ] 
+0

感謝的元素,但我不知道爲什麼它不工作對我的數據。知道我擁有的完整數據集的列和行不均勻可能很重要。另外,看起來好像R已經將json數據強制轉換爲列表(使用json格式)。 – annad

+0

@annad,我已經證明我的答案在你提供的示例JSON中有效。如果你有不同的結構,你將需要適應適合,但原則保持不變。 –