Wordfish Datensatz Variablen nach Bedinungen löschen

Wie erweitere ich R um eigene Funktionen oder Pakete? Welches Paket ist passend für meine Fragestellung?

Moderatoren: EDi, jogo

Antworten
DanaS
Beiträge: 2
Registriert: Mi Jan 17, 2018 2:58 pm

Wordfish Datensatz Variablen nach Bedinungen löschen

Beitrag von DanaS » Mi Jan 17, 2018 3:10 pm

Hallo,
ich verwende R erst seit kurzem um mit Worfish/Austin Parteienpositionen aus Dokumenten zu berechnen. Das funktioniert auch gut.

Nun habe ich meine wfm (word frequencies matrix; 5 obs. of 1546 variables) in R hochgeladen und wie benötig transponiert bekommen.

Die Daten sehen dann viel folgt aus:
wfm.jpg
Nun möchte ich aber vor meiner Analyse alle Wörter bzw. Variablen entfernen, die von nur einer Partei verwendet werden. Es ist dabei egal ob sie von dieser einen Partei 15-mal benutzt werden. Ist diese Partei die einzige, muss die Variable gelöscht werden.

Ich habe dies bisher in MSExcel mit der =ZähleWenn(B2:F2;”>0”) -Funktion gemacht und dann per Hand alle Reihen unter dem Wert 2 gelöscht. In dem aktuellen Beispiel würde sich damit die Wortanzahl von 1546 auf 364 verringern. Das Vorgehen ist natürlich sehr aufwendig, so dass ich gehofft hatte mit einem R Skript weiter zu kommen.

Meine eigene Recherche – auch in englischsprachigen Foren – bringt mich leider nicht weiter.

Ich bin für jede Hilfe dankbar!

jogo
Beiträge: 825
Registriert: Fr Okt 07, 2016 8:25 am

Re: Wordfish Datensatz Variablen nach Bedinungen löschen

Beitrag von jogo » Mi Jan 17, 2018 4:08 pm

Hallo Dana,

willkommen im Forum!
Wenn das eine Matrix ist, dann liefert Dir

Code: Alles auswählen

rowSums(wfm!=0)>1
einen passenden Index für die Zeilen. Die Selektion kann dann so aussehen:

Code: Alles auswählen

wfm[rowSums(wfm!=0)>1, ]
Gruß, Jörg

DanaS
Beiträge: 2
Registriert: Mi Jan 17, 2018 2:58 pm

Re: Wordfish Datensatz Variablen nach Bedinungen löschen

Beitrag von DanaS » Mi Jan 17, 2018 5:53 pm

Vielen Dank. So ähnlich habe ich jetzt auch gemacht!
eine zusätzliche Spalte mit rowsum und diese dann als Bedinung sowie die column mit abgeschnitten

Code: Alles auswählen

Datensatz<-read.csv(data.csv,row.names = 1,header = TRUE, sep = ",")
data <-t(Datensatz)
data <- cbind(data, parties = rowSums(data > 0))
data1<- as.data.frame(data, row.names = NULL, optional = FALSE)
test<-data1[data1[6] >= 2,1:5]
Zuletzt geändert von jogo am Mi Jan 17, 2018 9:27 pm, insgesamt 1-mal geändert.
Grund: Code formatiert

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast