2017-10-19 3 views
0

jsonファイルをRのデータフレームに解析するのに問題があります。jsonファイルをデータフレームに変換できましたが、 「ジオメトリ」列。以下は、JSONファイルのサンプルRのデータフレームへの座標を持つunnest jsonファイル

[ 
{ 
    "point_id": 4, 
    "geometry": { 
     "type": "Point", 
     "coordinates": [ 
      -101.5961904, 
      31.7070736 
     ] 
    }, 
    "NumericID": "4543842", 
} 
] 

私は以下のコードを使用してネスト解除しようとすると、私はエラーを取得するです。

ex_data<-lapply(ex_data, function(x) ifelse (x == "NULL", NA, x)) 
ex_data<-as.data.frame(do.call(rbind, ex_data)) 
ex_data<-ex_data%>% bind_rows(ex_data) %>% # make larger sample data 
mutate_if(is.list, simplify_all) # flatten each list element internally 
ex_data%>%unnest(geometry)->ex_data_unnest 
Error: Each column must either be a list of vectors or a list of data frames 
[geometry] 

おかげ

答えて

0

使用jsonlite::stream_in() JSONファイルを読むために(私はJSONファイルにあなたの例をコピーし、数回):

df <- stream_in(file("test.json")) 

編集:

ネスト解除ジオメトリの列:

df <- as.data.frame(cbind(df[,-2], 
    do.call(rbind,df$geometry$coordinates),  
    df$geometry$type), 
    stringsAsFactors = F) 
names(df)[3:5] <- c("geometry.coordinates1","geometry.coordinates2","geometry.type") 

df 
    point_id NumericID geometry.coordinates1 geometry.coordinates2 geometry.type 
1   4 4543842    -101.5962    31.70707   Point 
2   4 4543842    -101.5962    31.70707   Point 

ここから値を確認できます。data.frame

+0

優れています。ありがとうございました! – jsimpsno

関連する問題