L'extraction des valeurs uniques à partir de bloc de données à l'aide de R

J'ai un bloc de données avec plusieurs colonnes et je veux être en mesure d'isoler deux des colonnes et obtenir le montant total de valeurs uniques... voici un exemple de ce que je veux dire:

Permet de dire que j'ai un bloc de données (df):

df<- data.frame(v1 = c(1, 2, 3, 2, "a"), v2 = c("a", 2 ,"b","b", 4))
df

  v1 v2
1  1  a
2  2  2
3  3  b
4  2  b
5  a  4

Maintenant, ce que j'essaie de faire est d'extraire les valeurs uniques sur les deux colonnes. Donc, si j'ai juste utilisé uniques() pour chaque colonne de la sortie devrait ressembler à ceci:

> unique(df[,1])
[1] 1 2 3 a
> unique(df[,2])
[1] a 2 b 4

Mais ce n'est pas bon car il ne trouve que les valeurs uniques par colonne, alors que j'ai besoin de la quantité totale de valeurs uniques sur deux colonnes! Par exemple, 'a' est répété dans les deux colonnes, mais je ne le veux comptés qu'une fois. Pour un exemple de sortie de ce dont j'ai besoin; imaginez les colonnes V1 et V2 sont placés sur le dessus de chaque autre comme:

  V1_V2
1      1
2      2
3      3
4      2
5      a
6      a
7      2
8      b
9      b
10     4

Les valeurs uniques de V1_V2 serait:

   V1_V2
1      1
2      2
3      3
5      a
8      b
10     4

Ensuite, j'ai pu en compte le nombre de lignes à l'aide de nrow().
Des idées comment je ferais parvenir?

unique(unlist(df))? Mais méfiez-vous de la contrainte qui aura lieu lorsque vous mélangez des types comme ça.
unique(c(df[,1],df[,2] ))

OriginalL'auteur Electrino | 2016-10-12