通过查找“列表"选择性地关注数据表 [英] Selective focus on data table via lookup "list"

查看:41
本文介绍了通过查找“列表"选择性地关注数据表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从 json 数据(数据 <- jsonlite::read_json('...zdf.de/assets/data/senioren/districts.json')$districts).我在语法上挣扎.有人可以帮忙吗?

i want to extract specific rankings/numbers of only some districts ( i have a list of districts "01000" etc.) out of the json data (data <- jsonlite::read_json('...zdf.de/assets/data/senioren/districts.json')$districts). I am struggling with the syntax. Can anyone help?

staedte_id= list("02000", "09162", "05315", "06412", "08111", "05111", "14713", 
         "05913", "05113", "04011", "14612", "03241", "09564", "05112", "05911", "05124",
         "05711", "05314", "05515", "08212", "08222", "09761", "06414", "05116")
x= data.frame()

for (i in staedte_id){
  
  data <- jsonlite::read_json('https://deutschland-studie-senioren-familie.zdf.de/assets/data/senioren/districts.json')$districts$i
  
  df <- map_df(data, function(x) {
    data.frame(
      name = x %>% {.$name},
      verkehrssicherheit = x %>% {.$parts$si$indicators$si1}
    ) }
    )
  x = rbind(x,df)

}

推荐答案

将 id 添加为列,然后过滤目标列表上的数据框

Add the ids as a column and then filter the dataframe on the target list

library(jsonlite)
library(tidyverse)

data <- jsonlite::read_json('https://deutschland-studie-senioren-familie.zdf.de/assets/data/senioren/districts.json')$districts

df <- map_df(data, function(x) {
  data.frame(
    name = x %>% {.$name},
    rank = x %>% {.$overall$rank}
  )
})

df$id <- names(data)

staedte_id <- list("02000", "09162", "05315", "06412", "08111", "05111", "14713", 
                 "05913", "05113", "04011", "14612", "03241", "09564", "05112", "05911", "05124",
                 "05711", "05314", "05515", "08212", "08222", "09761", "06414", "05116")


df <- df[which((df$id %in% staedte_id)==TRUE), ]
df <- df[order(df$rank),]


你也可以从 dplyr 借用函数:


You could also borrow functions from dplyr:

library(jsonlite)
library(tidyverse)

data <- jsonlite::read_json('https://deutschland-studie-senioren-familie.zdf.de/assets/data/senioren/districts.json')$districts

df <- map_df(data, function(x) {
  data.frame(
    name = x %>% {.$name},
    rank = x %>% {.$overall$rank}
  )
})

df$id <- names(data)

staedte_id <- list("02000", "09162", "05315", "06412", "08111", "05111", "14713", 
                 "05913", "05113", "04011", "14612", "03241", "09564", "05112", "05911", "05124",
                 "05711", "05314", "05515", "08212", "08222", "09761", "06414", "05116")

df <- dplyr::arrange(dplyr::filter(df, id %in% staedte_id), rank)

这篇关于通过查找“列表"选择性地关注数据表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆