通过查找 "list" 选择性地关注数据 table
Selective focus on data table via lookup "list"
我想从 json 数据(数据 <- jsonlite::read_json ('...zdf.de/assets/data/senioren/districts.json')$districts)。
我在语法上苦苦挣扎。有人可以帮忙吗?
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添加为一列,然后过滤目标列表中的dataframe
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 借用函数:
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)
我想从 json 数据(数据 <- jsonlite::read_json ('...zdf.de/assets/data/senioren/districts.json')$districts)。 我在语法上苦苦挣扎。有人可以帮忙吗?
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添加为一列,然后过滤目标列表中的dataframe
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 借用函数:
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)