Wie kann ich ausschließen, Reihen in R basierend auf mehrere Werte?
Sagen wir, ich habe einen Datensatz, der wie folgt aussieht:
> data
iso3 Vaccine Coverage
1 ARG DPT3 95
2 ARG MCV 94
3 ARG Pol3 91
4 KAZ DPT3 99
5 KAZ MCV 98
6 KAZ Pol3 99
7 COD DPT3 67
8 COD MCV 62
9 COD Pol3 66
Ich herausfiltern möchten Sie einige Datensätze auf mehrere Bedingungen gleichzeitig erfüllt; sagen, ich möchte, löschen Sie keine Daten aus Argentinien (ARG) mit einer Abdeckung von mehr als 93 Prozent. Das Ergebnis sollte also ausschließen, Zeilen 1 und 2:
iso3 Vaccine Coverage
3 ARG Pol3 91
4 KAZ DPT3 99
5 KAZ MCV 98
6 KAZ Pol3 99
7 COD DPT3 67
8 COD MCV 62
9 COD Pol3 66
Versuchte ich mit subset()
aber es schließt zu viel:
> subset(data, iso3!="ARG" & Coverage>93)
iso3 Vaccine Coverage
4 KAZ DPT3 99
5 KAZ MCV 98
6 KAZ Pol3 99
Das problem scheint zu sein, dass die &
Betreiber scheint nicht zu funktionieren, wie die Boolesche UND, Rücksendung der Schnittmenge der beiden Bedingungen. Statt, es funktioniert wie ein Boolesches ODER, die Rückkehr Ihrer Gewerkschaft.
Meine Frage ist, was muss ich hier verwenden, um zu erzwingen, die Boolesche UND?
- Es kann weniger verwirrend, wenn Sie
with
z.B.with(df, !(iso3 == "ARG" & Coverage > 93))
Du musst angemeldet sein, um einen Kommentar abzugeben.
!=
ist ein operator mit der Bedeutung "nicht gleich".!
gibt logische negation (NOT
)Ihren Zustand
ist
(iso3 nicht gleich zu "ARG") UND (Coverage > 93)
Wenn Sie möchten,
NICHT((iso-gleich "ARG") UND (Coverage > 93))
Müssen Sie erstellen eine Bedingung entsprechend, z.B.
zB
Für eine komplette Abdeckung der logischen Operatoren in der Basis R siehe