首页 > 解决方案 > 有没有办法将列表拆分为 R 中的元素?

问题描述

所以我正在使用来自 rtweet 的 get_timeline 对来自不同帐户的推文进行分析。它返回一个包含 90 个变量的 df,这很棒。但是,其中一个变量主题标签给了我 NA(推文中没有使用主题标签,一个主题标签或所有主题标签的列表。因此,我想为每个主题标签创建不同的变量以保存将推文转换为 CSV 以使用 powerBI 并绘制一些图表。因此,我的问题是,您能否将列表中的所有元素拆分为不同的变量,每个变量包含一个单词?

标签: rtwitter

解决方案


据我了解您的问题,您不需要拆分列表来获取所有单个或唯一的列表条目,而是使用 and 的unlist组合unique

假设您有一个不同长度的主题标签列表(示例中只是字母)l_hashtags。一些主题标签是重复的。

取消列出列表将为您提供包含所有主题标签的向量,包括所有重复。

应用unique到这个未列出的 l_hastag 为您提供原始列表的唯一成员。

l_hashtags <- list(c(LETTERS[1:2]), rep(NA,5), LETTERS[5:15], c('A', 'N', 'N', 'J', 'K'))
l_hashtags
#> [[1]]
#> [1] "A" "B"
#> 
#> [[2]]
#> [1] NA NA NA NA NA
#> 
#> [[3]]
#>  [1] "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O"
#> 
#> [[4]]
#> [1] "A" "N" "N" "J" "K"

table(unlist(l_hashtags))
#> 
#> A B E F G H I J K L M N O 
#> 2 1 1 1 1 1 1 2 2 1 1 3 1

l_hashtags_unlisted <- unlist(l_hashtags)

unique(l_hashtags_unlisted)
#>  [1] "A" "B" NA  "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O"

您当然可以将所有这些放在一行中:

unique(unlist(l_hashtags))
# [1] "A" "B" NA  "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O"

推荐阅读