Como posso listar os valores distintos em um vetor onde os valores são replicativos? Quero dizer, de forma semelhante à seguinte instrução SQL:
SELECT DISTINCT product_code
FROM data
fonte
Como posso listar os valores distintos em um vetor onde os valores são replicativos? Quero dizer, de forma semelhante à seguinte instrução SQL:
SELECT DISTINCT product_code
FROM data
Você quer dizer 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 os dados forem realmente um factor
, você pode usar a levels()
função, por exemplo
levels( data$product_code )
Se não for um fator, mas deveria ser, você pode convertê-lo em fator primeiro usando a factor()
função, por exemplo
levels( factor( data$product_code ) )
Outra opção, conforme mencionado acima, é a unique()
função:
unique( data$product_code )
A principal diferença entre os dois (quando aplicado a factor
) é que levels
retornará um vetor de caracteres na ordem dos níveis, incluindo todos os níveis que estão codificados, mas não ocorrem. unique
retornará a factor
na ordem em que os valores aparecem pela primeira vez, com quaisquer níveis não ocorrentes omitidos (embora ainda incluídos em levels
do fator retornado).
Tente usar a função duplicada em combinação com o operador de negação "!".
Exemplo:
wdups <- rep(1:5,5)
wodups <- wdups[which(!duplicated(wdups))]
Espero que ajude.
Você também pode usar o pacote sqldf em R.
Z <- sqldf('SELECT DISTINCT tablename.columnname FROM tablename ')