Libraries

library(quanteda)
## Package version: 2.0.1
## Parallel computing: 2 of 4 threads used.
## See https://quanteda.io for tutorials and examples.
## 
## Attaching package: 'quanteda'
## The following object is masked from 'package:utils':
## 
##     View
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(stringr)
library(formattable)
library(data.table)
## 
## Attaching package: 'data.table'
## The following objects are masked from 'package:dplyr':
## 
##     between, first, last
library(parallel)
library(regexSelect)
library(ggplot2)
library(ggthemes)
library(plyr)
## ------------------------------------------------------------------------------
## You have loaded plyr after dplyr - this is likely to cause problems.
## If you need functions from both plyr and dplyr, please load plyr first, then dplyr:
## library(plyr); library(dplyr)
## ------------------------------------------------------------------------------
## 
## Attaching package: 'plyr'
## The following objects are masked from 'package:dplyr':
## 
##     arrange, count, desc, failwith, id, mutate, rename, summarise,
##     summarize
library(cowplot)
## 
## ********************************************************
## Note: As of version 1.0.0, cowplot does not change the
##   default ggplot2 theme anymore. To recover the previous
##   behavior, execute:
##   theme_set(theme_cowplot())
## ********************************************************
## 
## Attaching package: 'cowplot'
## The following object is masked from 'package:ggthemes':
## 
##     theme_map
#farben
frau <- "#70b7b6"
mann <- "#c8b446"

links <- "#ffc65c"
mitte <- "#f08f43"
rechts <- "#e06552"

alt <- "#472d30"
jung <- "#bf8891"

Daten einlesen & Vorbereiten

setwd("/Users/annameisser/Desktop/DATA/AAA")

load("NR_SR_Jan_Okt_2019.RData")

# nach Sprache filtern
NR_SR_Jan_Okt_2019 <- NR_SR_Jan_Okt_2019 %>%  filter(Lang == "de") %>% filter(Candidate.Nationalrat == "1" | Candidate.Staenderat == "1") 

NR_SR_Jan_Okt_2019$Text <- NR_SR_Jan_Okt_2019$Text %>% str_remove_all("http[:graph:]+")
NR_SR_Jan_Okt_2019$Alter <- NR_SR_Jan_Okt_2019$Age 
NR_SR_Jan_Okt_2019$Alter <- as.numeric(NR_SR_Jan_Okt_2019$Alter)
NR_SR_Jan_Okt_2019$Alter <- car::recode(NR_SR_Jan_Okt_2019$Alter, "17:38 = 'jung'; 39:100 = 'alt'")

corpus_SP <- corpus(NR_SR_Jan_Okt_2019,text_field="Text")
#corpus_SP

Anzahl Tweets Frauen / Männer im Datensatz

### Total Mönner / Frauen im Datensatz für verhältnis vergleich

NR_klein <- NR_SR_Jan_Okt_2019 %>% select(c("Gender"))

library(reshape)
library(reshape2)

NR_klein$Gender <- car::recode(NR_klein$Gender, "'' = 'u'; 'NA'='u'")

NR_klein_f <- filter(NR_klein, Gender == "f")
NR_klein_f$case <- 1
NR_klein_f <- sum(NR_klein_f$case)
  

NR_klein_m <- filter(NR_klein, Gender == "m")
NR_klein_m$case <- 1
NR_klein_m <- sum(NR_klein_m$case)

cases <- c(NR_klein_f, NR_klein_m)
group <- c("f", "m")

tweet_cases <- as.data.frame(cases, group)
tweet_cases$group <- c("f", "m")

Anzahl Parteien im Datensatz

###### Total Parteien Tweets für Vergleich

NR_party <- NR_SR_Jan_Okt_2019 %>% select(c("Party_Short"))

NR_party$Party_Short <- car::recode(NR_party$Party_Short, "'' = 'u'; 'NA'='u'")

NR_party_glp <- filter(NR_party, Party_Short == "glp")
NR_party_glp$case <- 1
NR_party_glp <- sum(NR_party_glp$case)
  
NR_party_FDP <- filter(NR_party, Party_Short == "FDP")
NR_party_FDP$case <- 1
NR_party_FDP <- sum(NR_party_FDP$case)

NR_party_CVP <- filter(NR_party, Party_Short == "CVP")
NR_party_CVP$case <- 1
NR_party_CVP <- sum(NR_party_CVP$case)

NR_party_SP <- filter(NR_party, Party_Short == "SP")
NR_party_SP$case <- 1
NR_party_SP <- sum(NR_party_SP$case)

NR_party_Grüne <- filter(NR_party, Party_Short == "Grüne")
NR_party_Grüne$case <- 1
NR_party_Grüne <- sum(NR_party_Grüne$case)

NR_party_SVP <- filter(NR_party, Party_Short == "SVP")
NR_party_SVP$case <- 1
NR_party_SVP <- sum(NR_party_SVP$case)

NR_party_jglp <- filter(NR_party, Party_Short == "jglp")
NR_party_jglp$case <- 1
NR_party_jglp <- sum(NR_party_jglp$case)

NR_party_jf <- filter(NR_party, Party_Short == "jf")
NR_party_jf$case <- 1
NR_party_jf <- sum(NR_party_jf$case)

NR_party_BDP <- filter(NR_party, Party_Short == "BDP")
NR_party_BDP$case <- 1
NR_party_BDP <- sum(NR_party_BDP$case)

NR_party_JUSO <- filter(NR_party, Party_Short == "JUSO")
NR_party_JUSO$case <- 1
NR_party_JUSO <- sum(NR_party_JUSO$case)

NR_party_JCVP <- filter(NR_party, Party_Short == "JCVP")
NR_party_JCVP$case <- 1
NR_party_JCVP <- sum(NR_party_JCVP$case)

NR_party_EVP <- filter(NR_party, Party_Short == "EVP")
NR_party_EVP$case <- 1
NR_party_EVP <- sum(NR_party_EVP$case)

NR_party_JSVP <- filter(NR_party, Party_Short == "JSVP")
NR_party_JSVP$case <- 1
NR_party_JSVP <- sum(NR_party_JSVP$case)

NR_party_JG <- filter(NR_party, Party_Short == "JG")
NR_party_JG$case <- 1
NR_party_JG <- sum(NR_party_JG$case)

NR_party_Piraten <- filter(NR_party, Party_Short == "Piraten")
NR_party_Piraten$case <- 1
NR_party_Piraten <- sum(NR_party_Piraten$case)

NR_party_JBDP <- filter(NR_party, Party_Short == "JBDP")
NR_party_JBDP$case <- 1
NR_party_JBDP <- sum(NR_party_JBDP$case)

NR_party_jevp <- filter(NR_party, Party_Short == "jevp")
NR_party_jevp$case <- 1
NR_party_jevp <- sum(NR_party_jevp$case)

NR_party_up <- filter(NR_party, Party_Short == "up!")
NR_party_up$case <- 1
NR_party_up<- sum(NR_party_up$case)

NR_party_AL <- filter(NR_party, Party_Short == "AL ZH")
NR_party_AL$case <- 1
NR_party_AL <- sum(NR_party_AL$case)

cases <- c(NR_party_glp, NR_party_FDP, NR_party_CVP, NR_party_SP, NR_party_Grüne, NR_party_SVP, NR_party_jglp, NR_party_jf,
           NR_party_BDP, NR_party_JUSO, NR_party_JCVP, NR_party_EVP, NR_party_JSVP, NR_party_JG, NR_party_Piraten, NR_party_JBDP,
           NR_party_jevp, NR_party_up, NR_party_AL)
group <- c("glp", "FDP", "CVP", "SP", "Grüne", "SVP", "jglp", "jf", "BDP", "JUSO", "JCVP", "EVP", "JSVP", "JG", "Piraten", "JBDP", "jevp",
           "up!", "AL ZH")

tweet_cases2 <- as.data.frame(cases, group)
tweet_cases2$group <- c("glp", "FDP", "CVP", "SP", "Grüne", "SVP", "jglp", "jf", "BDP", "JUSO", "JCVP", "EVP", "JSVP", "JG",
                        "Piraten", "JBDP", "jevp", "up!", "AL ZH")

Anzahl Alt / Jung

### alter Vergleich

NR_alter <- NR_SR_Jan_Okt_2019 %>% select(c("Age"))

NR_alter$Age <- car::recode(NR_alter$Age, "'' = 'u'; 'NA'='u'")

NR_alt <- filter(NR_alter, Age > 38)
NR_alt$case <- 1
NR_alt <- sum(NR_alt$case)
  

NR_jung <- filter(NR_alter, Age <= 38)
NR_jung$case <- 1
NR_jung <- sum(NR_jung$case)

cases <- c(NR_alt, NR_jung)
group <- c("alt", "jung")

tweet_cases3 <- as.data.frame(cases, group)
tweet_cases3$group <- c("alt", "jung")

1. Wie sieht Geschlechterinklusive Sprache aus?

Art <- as.character(c("Neutralisierung", "Doppelenennung",  "Schrägstrich", "Klammerschreibweise", "Binnen-I", "Gendergap", "GenderX", "Genderstern"))

Beispiel <- as.character(c("die Studierenden", "Kollegen & Kolleginnen",  "Kolleg/innen", "Kolleg(inn)en", "LehrerInnen", "Lehrer_Innen", "Lehrx", "Richter*innen" ))

Form <- as.factor(c("Neutralisierung", "Feminisierung", "Feminisierung", "Feminisierung", "Feminisierung", "Genderinklusiv", "Genderinklusiv", "Genderinklusiv"))

sprache <- as.data.frame(Art)

sprache$Beispiel <- Beispiel

sprache$Form <- Form

tabelle <- formattable(sprache, align=c("l", "l", "l"), list(area(col = Form ~ normalize_bar("red"))))

tabelle
Art Beispiel Form
Neutralisierung die Studierenden Neutralisierung
Doppelenennung Kollegen & Kolleginnen Feminisierung
Schrägstrich Kolleg/innen Feminisierung
Klammerschreibweise Kolleg(inn)en Feminisierung
Binnen-I LehrerInnen Feminisierung
Gendergap Lehrer_Innen Genderinklusiv
GenderX Lehrx Genderinklusiv
Genderstern Richter*innen Genderinklusiv

2. Datensatz anschauen: wer Twittert?

wer_twittert <- select(NR_SR_Jan_Okt_2019,Alter, Party_Short, Age, Gender, Source, Name)

getmode <- function(v) {
   uniqv <- unique(v)
   uniqv[which.max(tabulate(match(v, uniqv)))]
}

Wer twittert Plots Gender

##############################3 Geschlecht ##############################
gender <- wer_twittert %>% group_by(Name, Gender) %>% select(Name) %>% summarise_all(sum) %>% na.omit()

geschlecht <- getmode(gender$Gender)
geschlecht_m <- filter(gender, Gender == "m")
geschlecht_f <- filter(gender, Gender == "f")

WT_geschlecht <- ggplot() + geom_bar(data = gender, mapping = aes(x = Gender), fill = alpha(c(frau, mann), .9)) + theme_tufte() + xlab("") + ylab("") + ggtitle("Anzahl Kandidat*innen") + theme(text = element_text(family = "Arial"))  + scale_x_discrete(labels = c("Frauen", "Männer"))
 
gender2 <- wer_twittert %>% group_by(Gender, Status_id) %>% select(Status_id) %>% summarise_all(sum) %>% na.omit

geschlecht_m2 <- filter(gender2, Gender == "m")
geschlecht_f2 <- filter(gender2, Gender == "f")

WT_geschlecht2 <- ggplot() + geom_bar(data = gender2, mapping = aes(x = Gender), fill = alpha(c(frau, mann), .9)) + ylab("") + theme_tufte() + xlab("")  + ggtitle("Anzahl Tweets") + theme(text = element_text(family = "Arial"))  + scale_x_discrete(labels = c("Frauen", "Männer"))

plot_grid( WT_geschlecht, WT_geschlecht2)

Wer twittert Alter

############################################################################
############################# Alter #######################################

wer_twittert$Age <- as.numeric(wer_twittert$Age)

alter <- wer_twittert %>% group_by(Name, Age) %>% select(Name) %>% summarise_all(sum)
alter_mean <- mean(alter$Age, na.rm = TRUE)
alter_median <- median(alter$Age, na.rm = TRUE)

alter <- wer_twittert %>% group_by(Name, Alter) %>% select(Name) %>% summarise_all(sum) %>% na.omit

alter_alt <- filter(alter, Alter == "alt")
alter_jung <- filter(alter, Alter =="jung")

WT_alter <- ggplot() + geom_bar(data = alter, mapping = aes(x = Alter), fill = alpha(c(alt, jung), .9)) + ylab("") +theme_tufte() + xlab("") +  ggtitle("Anzahl Kandidat*innen") + theme(text = element_text(family = "Arial"))  + scale_x_discrete(labels = c("über 38", "unter 38"))
 
alter2 <- wer_twittert %>% group_by(Alter, Status_id) %>% select(Status_id) %>% summarise_all(sum) %>% na.omit

alter_alt2 <- filter(alter2, Alter == "alt")

alter_jung2 <- filter(alter2, Alter == "jung")
WT_alter2 <- ggplot() + geom_bar(data = alter2, mapping = aes(x = Alter), fill = alpha(c(alt, jung), .9)) + ylab("") +theme_tufte() + xlab("") +  ggtitle("Anzahl Tweets") +  theme(text = element_text(family = "Arial")) + scale_x_discrete(labels = c("über 38", "unter 38"))

plot_grid( WT_alter, WT_alter2)

Wer twittert Partei

###############################################################################
######################### Partei ##############################################

partei <- wer_twittert %>% group_by(Name, Party_Short) %>% select(Name) %>% summarise_all(sum) %>% na.omit

partei_mode <- getmode(partei$Party_Short)

partei <- within(partei, 
                   Party_Short <- factor(Party_Short, 
                                      levels=names(sort(table(Party_Short), 
                                                        decreasing=TRUE))))

head(partei$Party_Short)
## [1] FDP     Piraten Piraten CVP     SP      Grüne  
## 39 Levels: glp FDP CVP SP Grüne SVP jglp jf BDP JUSO JCVP EVP JSVP ... PUM
partei <- filter(partei, Party_Short %in% c("glp", "FDP", "CVP", "SP", "Grüne", "SVP", "jglp", "jf", "BDP", "JUSO"))

#Farben zu links / mitte / rechts

WT_partei <- ggplot() + geom_bar(data = partei, mapping = aes(x = Party_Short), 
                                fill = c(mitte, rechts, mitte, links, links, rechts, mitte, rechts, rechts, links), bindwidth = .9, )  + theme_tufte() + theme(axis.text.x = element_text(angle = 45)) +
  scale_fill_manual(values = alpha("orange3"), .5) +
    xlab("") + ylab("") + ggtitle("Anzahl Kandidat*innen") + theme(text = element_text(family = "Arial")) 



partei2 <- wer_twittert %>% group_by(Status_id, Party_Short) %>% select(Status_id) %>% summarise_all(sum) %>% na.omit

partei2 <- within(partei2, 
                   Party_Short <- factor(Party_Short, 
                                      levels=names(sort(table(Party_Short), 
                                                        decreasing=TRUE))))

head(partei2$Party_Short)
## [1] glp  LOVB SP   JCVP SVP  jevp
## 39 Levels: CVP glp jglp up! FDP SVP SP Grüne EVP jf JSVP Piraten BDP ... PdA
partei2 <- filter(partei2, Party_Short %in% c("CVP", "glp", "jglp", "up!", "SVP", "FDP", "SP", "Grüne", "EVP", "jf"))


WT_partei2 <- ggplot() + geom_bar(data = partei2, mapping = aes(x = Party_Short), 
                                fill = c(mitte, mitte, mitte, mitte, rechts, rechts, links, links, mitte, rechts),  bindwidth = .9, )  + theme_tufte() + theme(axis.text.x = element_text(angle = 45))  + ggtitle("Anzahl Tweets") + theme(text = element_text(family = "Arial")) +
  xlab("") + ylab("") + labs(fill = "Legend") + 
  scale_color_manual(name = "Links Rechts Einordnung der Partei", values = c(links, mitte, rechts), labels = c(links, mitte, rechts))

plot_grid(WT_partei, WT_partei2)

3. Reihenfolge

Für Reihenfolge braucht es urpsrüngliche Wortreihenfolge: in context / tokens sentences

quanteda_options(threads = detectCores())

RF_tokens <- tokens(corpus_SP) %>% tokens_tolower()

#RF_dfm <- dfm(RF_tokens)
dict_reihe <- dictionary(list(fm = c("kandidatin und kandidat","kandidatin & kanditat", "kandidatin&kandidat","kandidatin u. kandidat", 
                               "kandidatin u kandidat","kandidatin / kandidat","kandidatin/kandidat",
                              "kandidatinnen und kandidaten", "kandidatinnen & kandidaten", 
                              "kandidatinnen&kandidaten", "kandidatinnen u. kandidaten", 
                               "kandidatinnen u kandidaten", "kandidatinnen / kandidaten", "kandidatinnen/kandidaten",
                              "wählerin und wähler", "wählerin & wähler", 
                               "wählerin&wähler", "wählerin u. wähler", 
                               "wählerin u wähler",  "wählerin / wähler", "wählerin/wähler",
                               "wählerinnen und wähler", "wählerinnen & wähler", 
                               "wählerinnen&wähler",  "wählerinnen u. wähler", 
                              "wählerinnen u wähler", "wählerinnen / wähler", "wählerinnen/wähler", "bürgerin und bürger", 
                              "bürgerin & bürger",  "bürgerin&bürger", "bürgerin u. bürger", 
                              "bürgerin u bürger",  "bürgerin / bürger",  "bürgerin/bürger",
                              "bürgerinnen und bürger", "bürgerinnen & bürger", 
                               "bürgerinnen&bürger", "bürgerinnen u. bürger", 
                               "bürgerinnen u bürger", "bürgerinnen / bürger", "bürgerinnen/bürger"), 
                              mf = c("kandidat und kandidatin","kandidat & kandidatin", "kandidat&kandidatin", "kandidat u. kandidatin", 
                              "kandidat u kandidatin","kandidat / kandidatin", "kandidat/kandidatin",
                               "kandidaten und kandidatinnen", "kandidaten & kandidatinnen", 
                              "kandidaten&kandidatinnen",  "kandidaten u. kandidatinnen", 
                              "kandidaten u kandidatinnen","kandidaten / kandidatinnen", "kandidaten/kandidatinnen", 
                               "wähler und wählerin","wähler & wählerin", 
                               "wähler&wählerin",  "wähler u. wählerin", 
                              "wähler u wählerin", "wähler / wählerin","wähler/wählerin",
                             "wähler und wählerinnen",  "wähler & wählerinnen", 
                              "wähler&wählerinnen","wähler u. wählerinnen", 
                               "wähler u wählerinnen", "wähler / wählerinnen", "wähler/wählerinnen", 
                             "bürger und bürgerin", "bürger & bürgerin", 
                               "bürger&bürgerin", "bürger u. bürgerin", 
                              "bürger u bürgerin", "bürger / bürgerin", "bürger/bürgerin", 
                               "bürger und bürgerinnen", "bürger & bürgerinnen", 
                              "bürger&bürgerinnen",  "bürger u. bürgerinnen", 
                               "bürger u bürgerinnen", "bürger / bürgerinnen", "bürger/bürgerinnen")))

Plot Frauen / Männer

# im Vergleich zu wie viele Frauen Twittern / wie viele Mönner Kandidaten twitteren? 
dfm_reihe <- tokens_lookup(RF_tokens, dict_reihe) %>% dfm() 

#reihe <- textstat_frequency(dfm_reihe) 

reihe_GE <- textstat_frequency(dfm_reihe, group = "Gender")

reihe_GE$group <- car::recode(reihe_GE$group, "'' = 'u'; 'NA'='u'")

reihe_GE <- merge(tweet_cases, reihe_GE,by= "group")

# ohne relative
plot_GE1 <- ggplot() + geom_col(position = "dodge", data = reihe_GE, mapping = aes(x = feature, y = frequency, fill = group)) +  
  scale_fill_manual(values = alpha(c(frau, mann), .9)) + 
  theme_tufte() + ylab("") + xlab("") + scale_x_discrete(labels = c("Frau vor Mann", "Mann vor Frau")) + 
  theme(text = element_text(family = "Arial")) 



plot_GE2 <- ggplot() + geom_col(position = "dodge", data = reihe_GE, mapping = aes(x = feature, y = frequency/cases, fill = group)) + 
  scale_fill_manual(values = alpha(c(frau, mann), .9)) +  
  theme_tufte()  + scale_x_discrete(labels = c("Frau vor Mann", "Mann vor Frau")) +
  theme(text = element_text(family = "Arial", size = 14))  + labs(fill = "Geschlecht", title = "Reihenfolge der Nennung", x = "", y = "") 

plot_GE2

2. Reihenfolge Häufigkeit im Vergleich

############### ist es besser mit cases - alle tweets oder nur tweets die eines der Wörter besprecheen? 

quanteda_options(threads = detectCores())

HK_tokens <- tokens(corpus_SP, "word", remove_url=T,  remove_numbers = T) %>% tokens_tolower()

HK_dfm <- dfm(HK_tokens)

dict_GE <- dictionary(list(mann = c("wähler", "kandidat", "kandidaten", "bürger", "nationalratskdandidat", "nationalratskandidaten" ), frau = c("wählerin", "wählerinnen", "kandidatin", "kandidatinnen", "bürgerin", "bürgerinnen", "nationalratskandidatin", "nationalratskandidatinnen")))

dfm_GE2 <- dfm_lookup(HK_dfm, dict_GE)

#########################################################################
# muss vorkomnisse in Verbindung zu einander abziehen um in einer Grafik darzustellen ohne

reihe_GEtotal <- textstat_frequency(dfm_reihe, group = "Gender") 
abziehen_f <- reihe_GEtotal %>% filter(group == "f")
abziehen_f <- sum(abziehen_f$frequency)

abziehen_m <- reihe_GEtotal %>% filter(group == "m")
abziehen_m <- sum(abziehen_m$frequency)

abziehen_nicht <- 0


feature <- c("mf", "fm", "mann", "frau")
abziehen1 <- c(abziehen_nicht, abziehen_nicht, abziehen_m, abziehen_f)

abziehen <- as.data.frame(abziehen1, feature)
abziehen$feature <- feature

#######################################################################

reihe_GE2 <- textstat_frequency(dfm_GE2, group = "Gender")

reihe_GE2 <- merge(tweet_cases, reihe_GE2, by= "group")

reihe_GE2 <- select(reihe_GE2, group, cases, feature, frequency)
reihe_GE3 <- select(reihe_GE, group, cases, feature, frequency)

reihe_GE3 <- rbind(reihe_GE2, reihe_GE3)

reihe_GE3 <- merge(reihe_GE3, abziehen, by = "feature")

reihe_GE3$abziehen1 <- as.numeric(reihe_GE3$abziehen1)
reihe_GE3$frequency <- as.numeric(reihe_GE3$frequency)

reihe_GE3$V3 <- reihe_GE3$frequency-reihe_GE3$abziehen1

Plot im Vergleich zu Reihenfolge

reihe_GEplot <- reihe_GE3
reihe_GEplot$feature <- car::recode(reihe_GEplot$feature, "'fm' = 'Kombination Frau - Mann'; 'mf' = 'Kombination Mann - Frau'; 'frau' = 'nur Frau'; 'mann' = 'nur Mann'")

plot_GE2 <- ggplot() + geom_col(position ="dodge", data = reihe_GEplot, mapping = aes(x = feature, y = V3/cases, fill = group), width = .6) +  
  scale_fill_manual(values = alpha(c(frau, mann), .9)) + 
  theme_tufte()  + theme(text = element_text(family = "Arial", size = 22)) + labs(fill = "Geschlecht", x = "", y = "", title = "Reihenfolge der Nennung im Vergleich zu Einzelnennungen") + coord_flip()

plot_GE2

## selbe mit Alter

######################################################################### dfm reihe ##############################

reihe_alter_total <- textstat_frequency(dfm_reihe, groups = "Age") 

reihe_alter_total$group <- as.numeric(reihe_alter_total$group)
## Warning: NAs durch Umwandlung erzeugt
reihe_alter_total$group <- car::recode(reihe_alter_total$group, "17:38 = 'jung'; 39:100 = 'alt'")

abziehen_alt <- reihe_alter_total %>% filter(group == "alt")
abziehen_alt <- sum(abziehen_alt$frequency)

abziehen_jung <- reihe_alter_total %>% filter(group == "jung")
abziehen_jung <- sum(abziehen_jung$frequency)

abziehen_nicht <- 0


feature <- c("mf", "mf", "fm", "fm", "mann", "mann", "frau", "frau")
abziehen1 <- c(abziehen_nicht, abziehen_nicht, abziehen_nicht, abziehen_nicht, abziehen_alt, abziehen_jung, abziehen_alt, abziehen_jung)

abziehen <- as.data.frame(abziehen1, feature)
abziehen$feature <- c("mf", "mf", "fm", "fm", "mann", "mann", "frau", "frau")
abziehen$group <- c("alt", "jung", "alt", "jung", "alt", "jung", "alt", "jung")



reihe_alter_total$group <- car::recode(reihe_alter_total$group, "'' = 'u'; 'NA'='u'") 
reihe_alter_total <- select(reihe_alter_total, group, frequency, feature)

#reihe_alt1 <- merge(tweet_cases3, reihe_alter_total,by= "group")

####################################################################### dfm_GE2 ###########################

reihe_alter <- textstat_frequency(dfm_GE2, group = "Alter")

reihe_alter$feature <- as.factor(reihe_alter$feature)
reihe_alter$frequency <- as.numeric(reihe_alter$frequency)

reihe_alter2 <- reihe_alter %>% select(group, frequency, feature)  


#reihe_alter3 <- merge(tweet_cases3, reihe_alter2, by = "group")


######################################## merging ###########################################

reihe_alter2 <- merge(reihe_alter2, tweet_cases3, by = "group")
reihe_alter_total <- merge(reihe_alter_total, tweet_cases3, by = "group")

reihe_alt5 <- rbind(reihe_alter2, reihe_alter_total)
reihe_alt5 <- merge(reihe_alt5, abziehen, by = c("feature", "group"))


reihe_alt5$abziehen1 <- as.numeric(reihe_alt5$abziehen1)
reihe_alt5$frequency <- as.numeric(reihe_alt5$frequency)

reihe_alt5$V4 <- reihe_alt5$frequency-reihe_alt5$abziehen1


#######################################################################

Plot im Vergleich zu Reihenfolge

alt_plot <- reihe_alt5

alt_plot$feature <- car::recode(alt_plot$feature, "'fm' = 'Kombination Frau - Mann'; 'mf' = 'Kombination Mann - Frau'; 'frau' = 'nur Frau'; 'mann' = 'nur Mann'")

alt_plot1 <- ggplot() + geom_col(position = "dodge", data = alt_plot, mapping = aes(x = feature, y = V4/cases, fill = group), width = .6) + 
  scale_fill_manual(values = alpha(c(alt, jung), .9)) + 
  theme_tufte() + theme(text = element_text(family = "Arial", size = 22)) + labs(fill = "Alter", x = "", y="", title = "Reihenfolge der Nennung im Vergleich zu Einzelnennungen")+ coord_flip()

alt_plot1