Come posso elencare i valori distinti in un vettore in cui i valori sono replicativi? Voglio dire, in modo simile alla seguente istruzione SQL:
SELECT DISTINCT product_code
FROM data
Come posso elencare i valori distinti in un vettore in cui i valori sono replicativi? Voglio dire, in modo simile alla seguente istruzione SQL:
SELECT DISTINCT product_code
FROM data
Risposte:
Intendi 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
Se i dati sono effettivamente un factor
, puoi utilizzare la levels()
funzione, ad es
levels( data$product_code )
Se non è un fattore, ma dovrebbe esserlo, puoi convertirlo prima in fattore utilizzando la factor()
funzione, ad es
levels( factor( data$product_code ) )
Un'altra opzione, come accennato in precedenza, è la unique()
funzione:
unique( data$product_code )
La principale differenza tra i due (se applicata ad a factor
) è che levels
restituirà un vettore di caratteri nell'ordine dei livelli, inclusi tutti i livelli codificati ma non presenti. unique
restituirà factor
a nell'ordine in cui i valori appaiono per primi, con tutti i livelli non presenti omessi (sebbene ancora inclusi nel levels
fattore restituito).
Puoi anche usare il pacchetto sqldf in R.
Z <- sqldf('SELECT DISTINCT tablename.columnname FROM tablename ')