How can I list the distinct values in a vector where the values are replicative? I mean, similarly to the following SQL statement:
SELECT DISTINCT product_code
FROM data
This question is related to
r
vector
distinct-values
r-faq
another way would be to use dplyr
package:
x = c(1,1,2,3,4,4,4)
dplyr::distinct(as.data.frame(x))
You can also use the sqldf package in R.
Z <- sqldf('SELECT DISTINCT tablename.columnname FROM tablename ')
If the data is actually a factor
then you can use the levels()
function, e.g.
levels( data$product_code )
If it's not a factor, but it should be, you can convert it to factor first by using the factor()
function, e.g.
levels( factor( data$product_code ) )
Another option, as mentioned above, is the unique()
function:
unique( data$product_code )
The main difference between the two (when applied to a factor
) is that levels
will return a character vector in the order of levels, including any levels that are coded but do not occur. unique
will return a factor
in the order the values first appear, with any non-occurring levels omitted (though still included in levels
of the returned factor).
Try using the duplicated function in combination with the negation operator "!".
Example:
wdups <- rep(1:5,5)
wodups <- wdups[which(!duplicated(wdups))]
Hope that helps.
In R Language
(version 3.0+) You can apply filter to get unique out of a list-
data.list <- data.list %>% unique
or couple it with other operation as well
data.list.rollnumbers <- data.list %>% pull(RollNumber) %>% unique
unique
doesn't require dplyr
.
Source: Stackoverflow.com