Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 读取和格式化多级、不均匀的JSON_R_Tidyverse_Jsonlite - Fatal编程技术网

R 读取和格式化多级、不均匀的JSON

R 读取和格式化多级、不均匀的JSON,r,tidyverse,jsonlite,R,Tidyverse,Jsonlite,我有一个JSON,如下所示 { "timestamps": [ "2020-12-17T20:05:00Z", "2020-12-17T20:10:00Z", "2020-12-17T20:15:00Z", "2020-12-17T20:20:00Z", "2020-12-17T20:25:00Z", "2020-1

我有一个JSON,如下所示

{
  "timestamps": [
    "2020-12-17T20:05:00Z",
    "2020-12-17T20:10:00Z",
    "2020-12-17T20:15:00Z",
    "2020-12-17T20:20:00Z",
    "2020-12-17T20:25:00Z",
    "2020-12-17T20:30:00Z"
  ],
  "properties": [
    {
      "values": [
        -20.58975828559592,
        -19.356728999226693,
        -19.808982964173023,
        -19.673928070777993,
        -19.712275037138411,
        -19.48422739982918
      ],
      "name": "Neg Flow",
      "type": "Double"
    },
    {
      "values": [
        2,
        20,
        19,
        20,
        19,
        16
      ],
      "name": "Event Count",
      "type": "Long"
    }
  ],
  "progress": 100.0
}
如何将其转换为如下所示的数据帧。虽然我能够循环遍历各个数据项,但我感兴趣的是,是否有一种圆滑的方法可以做到这一点

+----------------------+---------------------+-------------+
|Time Stamps           | Neg Flow            | Event Count |
+----------------------+---------------------+-------------+
|2020-12-17T20:05:00Z  |-20.58975828559592   | 2           |
+----------------------+---------------------+-------------+
|2020-12-17T20:10:00Z  |-19.356728999226693  | 20          |
+----------------------+---------------------+-------------+

这里有一个方法

library(jsonlite) # read json
library(dplyr) # maniputate data frame
library(magrittr) # for the use of %<>%

# temp.json is my file using the content you provided
json_data <- read_json("temp.json")

# initial data with timestamp
data <- tibble(`Time Stamps` = unlist(json_data[["timestamps"]]))

# properties process
for (property in json_data[["properties"]]) {
  property_name <- property[["name"]]
  # using dynamic namming for more reference please refer to link at end of post
  data %<>% mutate({{property_name}} := unlist(property[["values"]]))
}
library(jsonlite)#读取json
库(dplyr)#计算机数据帧
图书馆(magrittr)#供%%使用
#temp.json是使用您提供的内容的我的文件

json_数据您能否以可复制的形式提供数据,我们可以复制粘贴?@Ronaksah,上面的json文件就是数据。它可以复制!当我将它复制到R中时,它会返回许多错误消息,如“}”中的
error:unexpected'}'和“type”中的
error:“Long”:NA/NaN参数
以及其他许多错误消息。不知道如何复制它。
# A tibble: 6 x 3
  `Time Stamps`        `Neg Flow` `Event Count`
  <chr>                     <dbl>         <int>
1 2020-12-17T20:05:00Z      -20.6             2
2 2020-12-17T20:10:00Z      -19.4            20
3 2020-12-17T20:15:00Z      -19.8            19
4 2020-12-17T20:20:00Z      -19.7            20
5 2020-12-17T20:25:00Z      -19.7            19
6 2020-12-17T20:30:00Z      -19.5            16