diff --git a/R/actor_merger.R b/R/actor_merger.R index bdfb8c5..f0b5e66 100644 --- a/R/actor_merger.R +++ b/R/actor_merger.R @@ -90,6 +90,26 @@ actor_merger <- function(df, actors_meta, actor_groups = NULL) { actor.occ = .N, ids = 'all'), by = list(id)] + all_ind <- df[str_detect(ids, 'A_'), + .(actor.sent = sum(sent_sum)/sum(words), + actor.sent_sum = sum(sent_sum), + actor.sent_words = sum(sent_words), + actor.words = sum(words), + actor.arousal = sum(sent_words)/sum(words), + actor.first = first(sentence_id), + actor.occ = .N, + ids = 'ind'), by = list(id)] + + all_par <- df[str_detect(ids, '_f|_s'), + .(actor.sent = sum(sent_sum)/sum(words), + actor.sent_sum = sum(sent_sum), + actor.sent_words = sum(sent_words), + actor.words = sum(words), + actor.arousal = sum(sent_words)/sum(words), + actor.first = first(sentence_id), + actor.occ = .N, + ids = 'par'), by = list(id)] + ## Unnest to actor level df <- df[,.(ids = as.character(unlist(ids))), by = list(id,publication_date,sentence_id, sent_sum, words, sent_words)] @@ -178,7 +198,7 @@ actor_merger <- function(df, actors_meta, actor_groups = NULL) { parties <- actors_meta[parties, on = c('ids'), mult = 'first'][!is.na(id),.(ids = str_c(ids,"_mfs"), (.SD)), .SDcols = -c('ids')] ## Join all aggregations into a single data frame, compute derived actor-level measures, and add date dummies - df <- bind_rows(actors, parties, parties_actors, all) %>% + df <- bind_rows(actors, parties, parties_actors, all, all_ind, all_par) %>% left_join(.,text_sent, by="id") %>% left_join(.,text_noactors, by="id") %>% mutate(