This function extracts the dates for which aggregated time series sentiment is most extreme (lowest, highest or both in absolute terms). The extracted dates are unique, even when, for example, all most extreme sentiment values (for different sentiment measures) occur on only one date.
peakdates(sento_measures, n = 10, type = "both", do.average = FALSE)
a sento_measures
object created using sento_measures
.
a positive numeric
value to indicate the number of dates associated to sentiment peaks to extract.
If n < 1
, it is interpreted as a quantile (for example, 0.07 would mean the 7% most extreme dates).
a character
value, either "pos"
, "neg"
or "both"
, respectively to look
for the n
dates related to the most positive, most negative or most extreme (in absolute terms) sentiment
occurrences.
a logical
to indicate whether peaks should be selected based on the average sentiment
value per date.
A vector of type "Date"
corresponding to the n
extracted sentiment peak dates.
set.seed(505)
data("usnews", package = "sentometrics")
data("list_lexicons", package = "sentometrics")
data("list_valence_shifters", package = "sentometrics")
# construct a sento_measures object to start with
corpus <- sento_corpus(corpusdf = usnews)
corpusSample <- quanteda::corpus_sample(corpus, size = 500)
l <- sento_lexicons(list_lexicons[c("LM_en", "HENRY_en")], list_valence_shifters[["en"]])
ctr <- ctr_agg(howTime = c("equal_weight", "linear"), by = "month", lag = 3)
sento_measures <- sento_measures(corpusSample, l, ctr)
# extract the peaks
peaksAbs <- peakdates(sento_measures, n = 5)
peaksAbsQuantile <- peakdates(sento_measures, n = 0.50)
peaksPos <- peakdates(sento_measures, n = 5, type = "pos")
peaksNeg <- peakdates(sento_measures, n = 5, type = "neg")