有没有办法根据列表的元素取消列出元素,然后创建一个数据框?

Is there a way to unlist elements according to the elements of the list and then create a dataframe?

我想取消列出一个变量,然后将其转换为数据框。该变量具有以下结构:

> str(socialmedia$social_network_accounts, list.len = 3)
List of 2767
 $ :'data.frame':   2 obs. of  2 variables:
  ..$ type : chr [1:2] "Twitter" "YouTube"
  ..$ value: chr [1:2] "https://www.twitter.com/MarinadelPilar" "https://www.youtube.com/c/MarinadelPilar"

我试过这个代码:

(SMedia <- tibble(Redes = socialmedia$social_network_accounts))

我明白了

# A tibble: 2,767 x 1
   Redes       
   <list>      
 1 <df [2 × 2]>
 2 <df [0 × 0]>
 3 <df [1 × 2]>
 4 <df [1 × 2]>
 5 <df [1 × 2]>
 6 <df [0 × 0]>
 7 <df [0 × 0]>
 8 <df [2 × 2]>
 9 <df [2 × 2]>
10 <df [1 × 2]>
# … with 2,757 more rows

names(SMedia$Redes[[1]])
[1] "type"  "value"

然后我尝试创建一个数据框

df <- data.frame(matrix(unlist(SMedia$Redes),nrow = 3050))

但我在同一列中获得了这个输出

matrix.unlist.SMedia.Redes...nrow...3050.
Twitter
YouTube
https://www.twitter.com/MarinadelPilar
https://www.youtube.com/c/MarinadelPilar
Twitter
https://www.twitter.com/LupJonesof

所以,我想在数据框中有一列用于“类型”,另一列用于“值”,因为我想计算一些统计数据。

非常感谢你的帮助,

奥西里斯

使用示例数据会更容易,但如果我理解正确的话,您有一个名为 socialmedia$social_network_accounts 的数据框列表,并且您想将它们放在一起。在那种情况下,像

purrr::map_df(socialmedia$social_network_accounts,~ .x)

应该工作。

我们可以使用unnest

library(tidyr)
unnest(SMedia, Redes)

也许你可以使用 rbindlist

data.table::rbindlist(SMedia$Redes)