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))
InformationsquelleAutor Hiterunner | 2014-10-01
Schreibe einen Kommentar