Verwendung der Funktion apply für eine Matrix mit NA-Einträgen

7

Ich lese Daten aus einer CSV-Datei. Wenn ich diese Datei in R sehe, habe ich:

%Vor%

Wenn ich den maximalen Wert in jeder Spalte haben möchte, verwende ich das:

%Vor%

und das ist das Ergebnis:

%Vor%

, aber es funktioniert in der Spalte, die kein NA hat. Wie kann ich meinen Code ändern, um Spalten mit NA zu vergleichen?

    
TangoStar 16.09.2013, 12:48
quelle

3 Antworten

17

Sie müssen nur na.rm=TRUE zu Ihrem Anwendungsaufruf hinzufügen.

%Vor%

Hinweis: Dies setzt voraus, dass jede Spalte mindestens einen Datenpunkt hat. Wenn nicht sum wird 0 zurückgeben.

NACH KOMMENTAR BEARBEITEN

fft hat kein na.rm Argument. Daher müssen Sie Ihre eigene Funktion schreiben.

%Vor%

Zum Beispiel:

%Vor%     
dayne 16.09.2013, 12:49
quelle
5

Eine andere Option:

%Vor%

BEARBEITEN: Der obige Code kann fehlschlagen, wenn apply() eine Matrix anstelle einer Liste zurückgibt. Und dies wird passieren, wenn zum Beispiel kein NA s vorhanden ist. Der folgende Code behebt Folgendes:

%Vor%

Interessant ist, dass simplify=FALSE nicht gesetzt werden muss, da das Ergebnis von tapply() nur dann vereinfacht wird, wenn na.exclude() einen einzelnen Skalar pro Spalte zurückgibt; und in diesem Fall funktioniert sapply auf die gleiche Weise.

    
Ferdinand.kraft 16.09.2013 13:22
quelle
1

Eine weitere Option, die -Inf zurückgibt, wenn alle Elemente von col NA

sind %Vor%     
Metrics 16.09.2013 14:03
quelle

Tags und Links