Удаление определенного фрагмента строк данных на основе переменной в R с помощью файла json - PullRequest
0 голосов
/ 02 июня 2018

Я работал с файлом формата json в R. Я пытаюсь избавиться от ненужных строк данных на основе переменной.Например, я пытаюсь избавиться от целого куска строк, когда событие

"state: incorrect" 

происходит из строк ниже:

[
{
"id": "id1",
"state": "correct",
"object": "ball",
"data": {
"http://54&46;210&46;82&46;207/lock/public/ext/gam/type": "c4"
},
"time": "2018-04-15T23:58:15.888700+00:00"
},

{
"id": "id1",
"state": "incorrect",
"object": "ball",
"data": {
  "http://54&46;210&46;82&46;207/lock/public/ext/gam/type": "c5"
},
"time": "2018-04-15T23:58:06.344300+00:00"
},

{
"id": "28s1",
"state": :"incorrect",
"object": ball",
"data": {
"http://54&46;210&46;82&46;207/lock/public/ext/gam/type": "c5"
},
"time": "2018-04-15T23:58:05.261600+00:00"
}
]

Я хочу получить что-то вроде:

[
{
"id": "id1",
"state": "correct",
"object": "ball",
"data": {
"http://54&46;210&46;82&46;207/lock/public/ext/gam/type": "c4"
},
"timeStamp": "2018-04-15T23:58:15.888700+00:00"
}
]

Буду признателен за любые комментарии, помощь и предложения.

1 Ответ

0 голосов
/ 02 июня 2018

В вашей строке JSON есть некоторые опечатки, но после их редактирования:

library(jsonlite)
df <- fromJSON(json_str )    
df
#     id     state object http://54&46;210&46;82&46;207/lock/public/ext/gam/type                             time
# 1  id1   correct   ball                                                     c4 2018-04-15T23:58:15.888700+00:00
# 2  id1 incorrect   ball                                                     c5 2018-04-15T23:58:06.344300+00:00
# 3 28s1 incorrect   ball                                                     c5 2018-04-15T23:58:05.261600+00:00

df <- subset(df,state!="incorrect")
toJSON(df,pretty = TRUE)
# [
#   {
#     "id": "id1",
#     "state": "correct",
#     "object": "ball",
#     "data": {
#       "http://54&46;210&46;82&46;207/lock/public/ext/gam/type": "c4"
#     },
#     "time": "2018-04-15T23:58:15.888700+00:00"
#   }
# ] 

data

json_str <-
  '[
{
  "id": "id1",
  "state": "correct",
  "object": "ball",
  "data": {
  "http://54&46;210&46;82&46;207/lock/public/ext/gam/type": "c4"
  },
  "time": "2018-04-15T23:58:15.888700+00:00"
  },

  {
  "id": "id1",
  "state": "incorrect",
  "object": "ball",
  "data": {
  "http://54&46;210&46;82&46;207/lock/public/ext/gam/type": "c5"
  },
  "time": "2018-04-15T23:58:06.344300+00:00"
  },

  {
  "id": "28s1",
  "state": "incorrect",
  "object": "ball",
  "data": {
  "http://54&46;210&46;82&46;207/lock/public/ext/gam/type": "c5"
  },
  "time": "2018-04-15T23:58:05.261600+00:00"
  }
  ]'
...