¿Cómo puedo enumerar los valores distintos en un vector donde los valores son replicativos? Quiero decir, de manera similar a la siguiente declaración SQL:
SELECT DISTINCT product_code
FROM data
fuente
¿Cómo puedo enumerar los valores distintos en un vector donde los valores son replicativos? Quiero decir, de manera similar a la siguiente declaración SQL:
SELECT DISTINCT product_code
FROM data
¿Se refiere a 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
Si los datos son realmente un factor
, puede usar la levels()
función, por ejemplo
levels( data$product_code )
Si no es un factor, pero debería serlo, puede convertirlo en factor primero usando la factor()
función, por ejemplo
levels( factor( data$product_code ) )
Otra opción, como se mencionó anteriormente, es la unique()
función:
unique( data$product_code )
La principal diferencia entre los dos (cuando se aplica a a factor
) es que levels
devolverá un vector de caracteres en el orden de niveles, incluidos los niveles que están codificados pero que no ocurren. unique
devolverá un factor
en el orden en el que aparecen los valores por primera vez, con cualquier nivel que no se produzca omitido (aunque todavía se incluye en levels
el factor devuelto).
Intente usar la función duplicada en combinación con el operador de negación "!".
Ejemplo:
wdups <- rep(1:5,5)
wodups <- wdups[which(!duplicated(wdups))]
Espero que ayude.
También puede usar el paquete sqldf en R.
Z <- sqldf('SELECT DISTINCT tablename.columnname FROM tablename ')