Umgang mit NA-Werten in apply und unique

8

Ich habe einen Datenrahmen mit 114 Zeilen und 16 Spalten, wobei die Zeilen Individuen sind und die Spalten entweder ihre Namen oder NA sind. Zum Beispiel sehen die ersten 3 Zeilen so aus:

%Vor%

Ich möchte eine Liste (wenn mehrere eindeutige Namen pro Zeile) oder Vektor (wenn nur ein eindeutiger Name pro Zeile) aller eindeutigen Namen mit der Länge 114 erzeugen.

Wenn ich apply(x,1,unique) versuche, bekomme ich ein 2xNcol-Array, wo manchmal die Zelle der ersten Zeile NA ist und manchmal die Zelle der zweiten Zeile NA ist.

%Vor%

Wenn ich nur möchte:

%Vor%

Ich kann nicht herausfinden, wie ich unique () anwenden soll, während ich NA ignoriere. na.rm, na.omit usw. scheinen nicht zu funktionieren. Ich fühle mich als würde ich etwas wirklich einfaches vermissen ...

Danke!

    
bshor 15.02.2010, 21:32
quelle

2 Antworten

18

unique scheint kein Argument na.rm zu haben, aber Sie können die fehlenden Werte vor dem Aufruf selbst entfernen:

%Vor%

gibt

%Vor%     
Aniko 15.02.2010, 21:51
quelle
8

Sie waren sehr, sehr nahe an Ihrer anfänglichen Lösung. Aber wie Aniko bemerkte, sollten Sie NA Werte nicht entfernen, bevor Sie unique verwenden können.

Ein Beispiel, in dem wir zuerst eine ähnliche data.frame erstellen und dann apply() wie zuvor verwenden - aber mit einer zusätzlichen anonymen Funktion, die na.omit() und unique() kombinieren:

%Vor%     
Dirk Eddelbuettel 15.02.2010 22:09
quelle

Tags und Links