簡體   English   中英

行在列表中綁定嵌套的 dataframe

[英]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
    )
  )
)

這是結構的屏幕截圖: JSON

Output df

tibble::tribble(
  ~firstname, ~throws,
  "Fernando",     "L",
       "Jon",     "R",
   "Eduardo",     "L",
     "James",     "R"
  )

我們可以將pluckmap一起使用

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM