有没有办法根据列表的元素取消列出元素,然后创建一个数据框?
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)
我想取消列出一个变量,然后将其转换为数据框。该变量具有以下结构:
> 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)