Comment puis-je lister les valeurs distinctes dans un vecteur où les valeurs sont réplicatives? Je veux dire, de la même manière que l'instruction SQL suivante:
SELECT DISTINCT product_code
FROM data
la source
Comment puis-je lister les valeurs distinctes dans un vecteur où les valeurs sont réplicatives? Je veux dire, de la même manière que l'instruction SQL suivante:
SELECT DISTINCT product_code
FROM data
Voulez-vous dire 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 les données sont en fait un, factor
vous pouvez utiliser la levels()
fonction, par exemple
levels( data$product_code )
Si ce n'est pas un facteur, mais qu'il devrait l'être, vous pouvez d'abord le convertir en facteur en utilisant la factor()
fonction, par exemple
levels( factor( data$product_code ) )
Une autre option, comme mentionné ci-dessus, est la unique()
fonction:
unique( data$product_code )
La principale différence entre les deux (lorsqu'ils sont appliqués à a factor
) est que levels
renvoie un vecteur de caractères dans l'ordre des niveaux, y compris tous les niveaux qui sont codés mais qui ne se produisent pas. unique
renverra a factor
dans l'ordre dans lequel les valeurs apparaissent en premier, avec tous les niveaux non existants omis (bien que toujours inclus dans levels
le facteur renvoyé).
Essayez d'utiliser la fonction dupliquée en combinaison avec l'opérateur de négation "!".
Exemple:
wdups <- rep(1:5,5)
wodups <- wdups[which(!duplicated(wdups))]
J'espère que cela pourra aider.
Vous pouvez également utiliser le package sqldf dans R.
Z <- sqldf('SELECT DISTINCT tablename.columnname FROM tablename ')