Doppelte Werte ausschließen

Berechnung von deskriptiven Statistiken mit R.

Doppelte Werte ausschließen

Beitragvon niederrheiner » Mo 26. Jun 2017, 16:30

Für meine Masterarbeit untersuche ich das Gesetzgebungsverfahren im nordrhein-westfälischen Landtag.

Dafür habe ich alle Abstimmungen in eine Excel-Tabelle eingetragen und dann in R ausgelesen.

Da die einstimmige Ausschussberatung in der 1. Lesung obligatorisch und einstimmig ist, habe ich die Abstimmungen mit Ausschussberatung ausgeschlossen.

Problem ist, dass dadurch einige Gesetzentwürfe, über die nicht abgestimmt worden sind, aus meinen Berechnungen rausfallen.

Wie kann ich in R gestalten, dass ich einfach nur mehrfache Einträge (ich habe die Drucksachen-Nummer in den Datensätzen) rausfilte und dass bei der Rausfilterung der Eintrag mit der Abstimmung "Annahme" oder "Ablehnung" drinbleibt.

Also die Variable ist "Ergebnis", die Ausprägungen "Ausschussberatung", "Gesetzannahme/2. Lesung", "Annahme", "Ablehnung"

Bei der Filterung sollen die Einträge mit den Ausprägungen des Ergebnisses "Ausschussberatung", "Gesetzannahme/2. Lesung" raus.
niederrheiner
 
Beiträge: 4
Registriert: Mo 26. Jun 2017, 16:22
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Doppelte Werte ausschließen

Beitragvon Hufeisen » Di 27. Jun 2017, 07:57

Gut möglich, dass es eine bessere Lösung gibt, aber ich würde es so machen: Ich nehme an, du hast die Drucksachennummer in einer extra Spalte. Diese würde ich als Faktor deklarieren. Dann würde ich eine for-Schleife ansetzen, die alle levels durchgeht und die gewünschten Variablenausprägungen extrahiert. Das ginge so:
Code: Alles auswählen
Datensatz$Drucksachen <- as.factor(Datensatz$Drucksachen)
# Anzahl Drucksachen bestimmen
n.Drucksachen <-  length(levels(Datensatz$Drucksachen))
for (i in 1: length(levels(Spalte mit den Drucksachennummern))) {
 
  neuer.Datensatz [i, ] <- Datensatz[Datensatz$Drucksachen = levels(Datensatz$Drucksachen) [i], ] # wählt alle Spalten für die jeweilige Drucksache aus

}
# neuen Datensatz nach gewünschten Kriterien verkürzen
neuer.Datensatz <- neuer.Datensatz[(neuer.Datensatz$Ergebnis == "Annahme" | neuer.Datensatz$Ausprägung == "Ablehnung" )]

Der Code ist ungetestet, vielleicht kannst du einen Ausschnitt aus deinen Daten hochladen. Mir geht das Erzeugen von Testdaten noch nicht so schnell von der Hand :oops: .
Zuletzt geändert von Hufeisen am Di 27. Jun 2017, 10:50, insgesamt 1-mal geändert.
Neu in R, versuche trotzdem zu helfen.
Hufeisen
 
Beiträge: 115
Registriert: Di 31. Jan 2017, 19:15
Danke gegeben: 0
Danke bekommen: 1 mal in 1 Post

Re: Doppelte Werte ausschließen

Beitragvon niederrheiner » Di 27. Jun 2017, 10:10

Code: Alles auswählen
Gesetzesentwurfe$Drucksache <- as.factor(Gesetzesentwurfe$Drucksache)
n.Drucksache <- length(levels(Gesetzesentwurfe$Drucksache)

for i in(1: length(levels(Drucksache))) {neuer.Datensatz [i, ] <- Datensatz[Gesetzesentwurfe$Drucksache = levels(Gesetzesentwurfe$Drucksache) [i], ]}


Gesetzesentwurfe ist der Datensatz.

Die Nummer der Drucksachen ist unter Drucksache eingepflegt.

Ich bekomme schon eine Fehlermeldung wenn ich bei der for-Schleife beginne:
Code: Alles auswählen
Error: unexpected symbol in "for i"
niederrheiner
 
Beiträge: 4
Registriert: Mo 26. Jun 2017, 16:22
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Doppelte Werte ausschließen

Beitragvon Hufeisen » Di 27. Jun 2017, 10:50

Ja, hatte die Klammer falsch gesetzt. Das habe ich jetzt behoben. Wie gesagt, der Code ist ungetestet, da fällt so etwas nicht so schnell auf :).
Neu in R, versuche trotzdem zu helfen.
Hufeisen
 
Beiträge: 115
Registriert: Di 31. Jan 2017, 19:15
Danke gegeben: 0
Danke bekommen: 1 mal in 1 Post

Re: Doppelte Werte ausschließen

Beitragvon niederrheiner » Di 27. Jun 2017, 11:01

> for (i in 1:741) {neuer.Datensatz [i, ] <- Gesetzesentwurfe[Gesetzesentwurfe$Drucksache == levels(Gesetzesentwurfe$Drucksache) [i], ]}
Error: object 'neuer.Datensatz' not found
> for (i in 1:741) {Gesetzesentwurfe [i, ] <- Gesetzesentwurfe[Gesetzesentwurfe$Drucksache == levels(Gesetzesentwurfe$Drucksache) [i], ]}
Error in x[...] <- m : replacement has length zero


Leider scheitert das bei mir am folgenden.
niederrheiner
 
Beiträge: 4
Registriert: Mo 26. Jun 2017, 16:22
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Doppelte Werte ausschließen

Beitragvon Hufeisen » Di 27. Jun 2017, 12:28

Naja, das Objekt neuer.Datensatz ist auch noch nicht definiert.
Neu in R, versuche trotzdem zu helfen.
Hufeisen
 
Beiträge: 115
Registriert: Di 31. Jan 2017, 19:15
Danke gegeben: 0
Danke bekommen: 1 mal in 1 Post

Re: Doppelte Werte ausschließen

Beitragvon niederrheiner » Di 27. Jun 2017, 12:42

Code: Alles auswählen
colnames(plenar) <- c("Jahr", "Monat", "Tag", "Plenarsitzung", "Drucksache", "Art", "Entscheidung", "Funktion", "Politikfeld", "Antragssteller", "Anwesende", "Ja", "Nein", "Enthaltungen", "Ergebnis", "CDU", "CDUJa", "CDUNein", "CDUEnth.", "FDP", "FDPJa", "FDPNein", "FDPEnth.", "Linke", "LinkeJa", "LinkeNein", "LinkeEnth.", "CDUZustimmung", "FDPZustimmung", "LinkeZustimmung", "CDU-FDP", "CDU-Linke", "FDP-Linke")
wantedRows <- c(2:947)
plenar <- plenar[wantedRows,]
plenarBearbeitet <- plenar[, c("Jahr", "Monat", "Tag", "Drucksache", "Art", "Entscheidung", "Funktion", "Politikfeld", "Antragssteller", "Ergebnis", "CDUJa", "CDUNein", "CDUEnth.", "FDPJa", "FDPNein", "FDPEnth.", "LinkeJa", "LinkeNein", "LinkeEnth.", "CDUZustimmung", "FDPZustimmung", "LinkeZustimmung", "CDU-FDP", "CDU-Linke", "FDP-Linke")]


gesetzentwurf <- "Gesetzentwurf"
Gesetzesentwurfe <- subset(plenarBearbeitet, Art==gesetzentwurf)
ausschussberatung <- "Ausschussberatung"
zweitelesung <- "Gesetzannahme/2. Lesung"

GesetzesentwurfeBearbeitet <- subset(Gesetzesentwurfe, Ergebnis!=ausschussberatung)
GesetzesentwurfeBearbeitet <- subset(GesetzesentwurfeBearbeitet, Ergebnis!=zweitelesung)


so habe ich bisher gearbeitet. Problem ist, dass dadurch die Gesetzentwürfe, die nur in der Ausschussberatung waren, aber über die nicht entschieden werden, verloren gehen.
niederrheiner
 
Beiträge: 4
Registriert: Mo 26. Jun 2017, 16:22
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Deskriptive Statistik

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast