首页 > 解决方案 > 如何取消嵌套 json 中包含 r 中地图坐标 int 列表列的字段?

问题描述

我已阅读json .txt 文件并希望从嵌套在其中的数据中提取geometry&字段。coordinates

但是由于其中的<int []> 列表列,在取消嵌套 数据方面存在问题。coordinates

library(tidyverse)
library(jsonlite)

India_map_data <- fromJSON(url("https://raw.githubusercontent.com/johnsnow09/covid19-df_stack-code/main/India_map_data.txt"))

下面的代码工作正常

India_map_data %>% 
  .$features %>% 
  map_if(is.data.frame, list) %>%
  as_tibble() %>% 
  unnest(properties, geometry) 
A tibble:1,369 x 10
hc-middle-x  hc-middle-y  type1 coordinates
<dbl>         <dbl>       <chr> <list>
0.50    0.50    MultiPolygon    <list [2]>
0.50    0.50    MultiPolygon    <list [4]>
0.35    0.70    MultiPolygon    <list [3]>
0.50    0.50    Polygon <int [1 × 45 × 2]>
0.50    0.50    MultiPolygon    <list [2]>
0.50    0.50    Polygon <int [1 × 5 × 2]>
0.50    0.50    MultiPolygon    <list [8]>
0.50    0.50    MultiPolygon    <list [2]>
0.60    0.75    MultiPolygon    <list [4]>
0.62    0.82    MultiPolygon    <list [6]>

但是当我unnest(coordinates)给出错误时

India_map_data %>% 
  .$features %>% 
  map_if(is.data.frame, list) %>%
  as_tibble() %>% 
  unnest(properties, geometry) %>% 
  unnest(coordinates)

错误:无法合并..1$coordinates..4$coordinates<integer[,45,2]>。

我该如何解决这个问题,以便我可以进一步使用这些数据进行绘图?

标签: rjsontidyrjsonliteunnest

解决方案


推荐阅读