列表的 R Count 和 CountDistinct 元素

R Count and CountDistinct elements of a list

我遇到了一个小问题:我使用了 Tweeter API 我得到了类似的东西:

id <- c(1:4)
val <- c(100,150,170,200)
tex <- c("[#price", "#quant]","[#good]","[#good] [#price]")
db <- data.frame(id,val,tex)

我想以最简单的方式计算主题标签的总数以及唯一主题标签的数量,因为然后我需要将所有内容放入反应性数据库中以便通过 Shiny 创建仪表板。

谢谢你的帮助。

in Base-R 这将获取所有唯一的主题标签,您可以使用 length( ) 获取计数

unique(unlist(regmatches(db$tex, gregexpr("#\w+", db$tex))))

[1] "#price" "#quant" "#good" 

编辑: 如果你喜欢没有 #

unique(unlist(regmatches(db$tex, gregexpr("#\K\w+", db$tex,perl=T))))
[1] "price" "quant" "good" 

选项str_extract

library(stringr)
unique(unlist(str_extract_all(db$tex, "#\w+")))
#[1] "#price" "#quant" "#good" 

base R 使用 strsplit

setdiff(unique(unlist(strsplit(db$tex, "[][ ]+"))), "")
#[1] "#price" "#quant" "#good"