【问题标题】:Is there some way to split a list into its elements in R?有没有办法将列表拆分为 R 中的元素?
【发布时间】:2021-01-06 20:15:57
【问题描述】:

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

【问题讨论】:

  • 您好 Pablo,欢迎来到 SO。您能否详细说明预期的结果?我认为,根据您的描述,可能有两种可能的解决方案,我们不知道是哪一种。您是否还可以添加一个小的可重复数据样本,我们可以用来向您展示它是如何完成的?您可以通过使用dput(head(df[, select a subset of columns] 来获得它。
  • 您在寻找this吗?
  • 我正在寻找那个,感谢@RuiBarradas 和所有评论的人!!

标签: r twitter


【解决方案1】:

据我了解,您不需要拆分列表以获得所有单个或唯一的列表条目,而是使用 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"

【讨论】:

    猜你喜欢
    • 2022-06-11
    • 2021-03-17
    • 1970-01-01
    • 2021-12-16
    • 2021-08-13
    • 1970-01-01
    • 2020-11-12
    • 2021-04-30
    • 1970-01-01
    相关资源
    最近更新 更多