有什么方法可以将列表拆分成 R 中的元素吗?

Is there some way to split a list into its elements in R?

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

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

假设您有一个不同长度的标签列表(示例中只是字母),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"