列表的 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"
我遇到了一个小问题:我使用了 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"