Listen Sie verschiedene Werte in einem Vektor in R auf

97

Wie kann ich die verschiedenen Werte in einem Vektor auflisten, in dem die Werte replikativ sind? Ich meine, ähnlich wie bei der folgenden SQL-Anweisung:

SELECT DISTINCT product_code
FROM data
Mehper C. Palavuzlar
quelle

Antworten:

168

Meinst du unique:

R> x = c(1,1,2,3,4,4,4)
R> x
[1] 1 1 2 3 4 4 4
R> unique(x)
[1] 1 2 3 4
csgillespie
quelle
12

Wenn die Daten tatsächlich a sind factor, können Sie die levels()Funktion verwenden, z

levels( data$product_code )

Wenn es sich nicht um einen Faktor handelt, dies aber sein sollte, können Sie ihn zuerst mithilfe der factor()Funktion in einen Faktor konvertieren , z

levels( factor( data$product_code ) )

Eine andere Option, wie oben erwähnt, ist die unique()Funktion:

unique( data$product_code )

Der Hauptunterschied zwischen den beiden (wenn auf a angewendet factor) besteht darin, dass levelsein Zeichenvektor in der Reihenfolge der Ebenen zurückgegeben wird, einschließlich aller Ebenen, die codiert sind, aber nicht auftreten. uniquegibt a factorin der Reihenfolge zurück, in der die Werte zuerst angezeigt werden, wobei alle nicht vorkommenden Ebenen weggelassen werden (obwohl sie immer noch im levelszurückgegebenen Faktor enthalten sind).

Isapir
quelle
8

Versuchen Sie, die duplizierte Funktion in Kombination mit dem Negationsoperator "!" Zu verwenden.

Beispiel:

wdups <- rep(1:5,5)
wodups <- wdups[which(!duplicated(wdups))]

Hoffentlich hilft das.

Al R.
quelle
7

Sie können auch das sqldf-Paket in R verwenden.

Z <- sqldf('SELECT DISTINCT tablename.columnname FROM tablename ')
Clay Burns
quelle