Behandlung fehlender / unvollständiger Daten in R - Gibt es eine Funktion zum Maskieren, aber Entfernen von NAs?

Wie Sie es von einem DSL erwarten würden, das auf Datenanalyse abzielt, behandelt R fehlende / inkompete Daten sehr gut, zum Beispiel:

Viele R-Funktionen haben ein na.rm kennzeichne das wenn auf @ gesetWAH, entferne die NAs:

>>> v = mean( c(5, NA, 6, 12, NA, 87, 9, NA, 43, 67), na.rm=T)
>>> v
      (5, 6, 12, 87, 9, 43, 67)

Aber wenn du dich mit NAs befassen willstVo der Funktionsaufruf, müssen Sie so etwas tun:

Um jede 'NA' aus einem Vektor zu entfernen:

vx = vx[!is.na(a)]

, um jede 'NA' aus einem Vektor zu entfernen und sie mit '0' zu ersetzen:

ifelse(is.na(vx), 0, vx)

, um jede Zeile, die 'NA' enthält, vollständig aus einem Datenrahmen zu entfernen:

dfx = dfx[complete.cases(dfx),]

Alle diese Funktionen permanententferne 'NA' oder Zeilen mit einem 'NA'.

Manchmal ist dies jedoch nicht das, was Sie möchten. Möglicherweise ist für den nächsten Schritt im Workflow eine Kopie des Datenrahmens mit 'NA'-Auszügen erforderlich. In den folgenden Schritten möchten Sie diese Zeilen jedoch häufig zurück (z. B. zum Berechnen) eine spaltenweise Statistik für eine Spalte, in der Zeilen fehlen, die durch einen vorherigen Aufruf der Funktion "Fälle vervollständigen" verursacht wurden, die jedoch keine "NA" -Werte enthält.

Um so klar wie möglich zu sein, wonach ich suche: python / numpy hat eine Klasse,masked array, mit einerMask -Methode, mit der Sieverdecke - NAs während eines Funktionsaufrufs nicht entfernen. Gibt es eine analoge Funktion in R?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage