如何使用R从JSON对象中删除命名元素
有人能告诉我如何使用R从JSON对象dt_stop_time_update中删除命名元素stop_sequence、stop_id、arrival_delay和execution_delay吗?我的输出示例如下:如何使用R从JSON对象中删除命名元素,json,r,Json,R,有人能告诉我如何使用R从JSON对象dt_stop_time_update中删除命名元素stop_sequence、stop_id、arrival_delay和execution_delay吗?我的输出示例如下: [ { "dt_trip_info": { "trip_id": [ "10034820-LCBS 17_18-LCBS_SAT-Saturday-02" ], "start_time": [ "13:46:00" ], "start_date": [ "20170916" ],
[
{
"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 ]
}
},
我只想补充一点,元素的重复序列是不均匀的。我相信输出结构是一个原子列表。
您需要将json导入列表,然后将要删除的元素设置为NULL
谢谢,但我不知道为什么它对我的数据不起作用。对于我拥有的完整数据集,了解列和行是不均匀的可能很重要。另外,看起来R已经将json数据强制转换为json格式的列表。@annad,我已经证明了我的答案在您提供的json示例中是有效的。如果你有一个不同的结构,你将需要适应,但原则保持不变。
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]
# ]
# }
# }
# ]