[英]Row bind nested dataframe within list
我希望有人可以幫助我解決我遇到的問題。 我有一個列表格式的json
響應。
結構是一個列表。 在每個列表中都有一列玩家。 它嵌套在每個列表中
df[[1]]$body$wildcards$players
players
列是每個列表中的嵌套df
。 我將如何綁定嵌套df
的播放器列以獲取完整列表?
下面截圖的代表。
sample <- list(
list(
body = list(
wildcards = list(
players = data.frame(
firstname = c("Fernando", "Jon"),
throws = c("L", "R")
)
),
statusMessage = "OK",
statusCode = 200
)
),
list(
body = list(
wildcards = list(
players = data.frame(
firstname = c("Eduardo", "James"),
throws = c("L", "R")
)
),
statusMessage = "OK",
statusCode = 200
)
)
)
Output df
tibble::tribble(
~firstname, ~throws,
"Fernando", "L",
"Jon", "R",
"Eduardo", "L",
"James", "R"
)
我們可以將pluck
與map
一起使用
library(purrr)
map_dfr(sample, ~ pluck(.x, 'body', 'wildcards','players'))
# firstname throws
#1 Fernando L
#2 Jon R
#3 Eduardo L
#4 James R
假設您在每個數據框中具有相同的列名:
library(data.table)
new_df <- rbindlist(lapply(df,function(x)x$body$wildcards$players),use.names=T,fill=T)
請注意,每個 df 中的列數不同,因此使用fill=T
參數,您的 dataframe 中將有NA
。
這能解決你的問題嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.