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

Wordfish Datensatz Variablen nach Bedinungen löschen

Beitrag von DanaS »

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: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Wordfish Datensatz Variablen nach Bedinungen löschen

Beitrag von jogo »

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

Re: Wordfish Datensatz Variablen nach Bedinungen löschen

Beitrag von DanaS »

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