Ich habe Probleme mit Code, den ich für die Datenverwaltung benötige. Ich entschuldige mich im Voraus, weil ich sicher bin, dass es eine recht einfache Lösung gibt, aber ich konnte keine anderen Informationen finden.
Ich analysiere Daten im Langformat mit dem Befehl mlogit in R. Für jeden Auswahlsatz sollte eine Alternative ausgewählt werden. Andernfalls schlägt der Befehl mlogit mit dem folgenden Fehler fehl:
Error in if (abs(x - oldx) < ftol) { :
missing value where TRUE/FALSE needed
Für meinen Datensatz gibt es tatsächlich einige Auswahlsätze, bei denen keine Alternative ausgewählt wird. Meine Frage lautet daher: Wie kann ich alle Zeilen eines Auswahlsatzes löschen, für den keine Alternative ausgewählt ist? In diesem Beispiel möchte ich alle Zeilen für ID 2 löschen, da dieser Befragte keine Auswahl trifft:
D.h. der Wert der Auswahlvariablen ist immer "FALSE".
Jede Hilfe sehr geschätzt!
2 Antworten
Verwenden Sie ave
in Kombination mit any
(Ausleihen von @ Richos df
):
df[ave(df$CHOICE, df$ID, FUN=any),]
# ID CHOICE ALT
#1 1 FALSE TRAIN
#2 1 TRUE CAR
#3 1 FALSE BUS
#7 3 TRUE TRAIN
#8 3 FALSE CAR
#9 3 FALSE BUS
#10 3 FALSE BIKE
Bitte schön:
library(dplyr)
df <- df %>% group_by(ID) %>% mutate(sum = sum(CHOICE))
df <- df[df$sum != 0 , ]
Oder verwenden Sie die filter
-Funktion von dplyr:
df %>% group_by(ID) %>% filter(any(CHOICE))
Daten:
df <- data.frame(ID = c(1,1,1,2,2,2,3,3,3,3),
CHOICE = c(F,T,F,F,F,F,T,F,F,F),
ALT = c("TRAIN", "CAR", "BUS","TRAIN", "CAR", "BUS","TRAIN", "CAR", "BUS","BIKE"))
Verwandte Fragen
Neue Fragen
r
R ist eine kostenlose Open-Source-Programmiersprache und Softwareumgebung für statistisches Rechnen, Bioinformatik, Visualisierung und allgemeines Rechnen. Bitte geben Sie minimale und reproduzierbare Beispiele zusammen mit der gewünschten Ausgabe an. Verwenden Sie dput () für Daten und geben Sie alle Nicht-Basispakete mit library () -Aufrufen an. Betten Sie keine Bilder für Daten oder Code ein, sondern verwenden Sie stattdessen eingerückte Codeblöcke. Verwenden Sie für statistische Fragen https://stats.stackexchange.com.