Элементы R Count и CountDistinct списка - PullRequest
1 голос
/ 29 мая 2020

У меня небольшая проблема: я использовал 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.

Спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 29 мая 2020

в 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" 
0 голосов
/ 29 мая 2020

Вариант с 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" 
...