Список различных значений в векторе в R


98

Как я могу перечислить отдельные значения в векторе, где значения репликативны? Я имею в виду аналогично следующему оператору SQL:

SELECT DISTINCT product_code
FROM data

Ответы:


169

Вы имеете в виду 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

12

Если данные на самом деле являются, factorвы можете использовать levels()функцию, например

levels( data$product_code )

Если это не фактор, но он должен быть, вы можете сначала преобразовать его в множитель, используя factor()функцию, например

levels( factor( data$product_code ) )

Другой вариант, как упоминалось выше, - это unique()функция:

unique( data$product_code )

Основное различие между ними (в применении к a factor) заключается в том, что levelsбудет возвращен вектор символов в порядке уровней, включая любые уровни, которые закодированы, но не встречаются. uniqueвернет a factorв том порядке, в котором значения появляются впервые, при этом все не встречающиеся уровни будут опущены (хотя все еще включены в levelsвозвращаемый коэффициент).


8

Попробуйте использовать дублированную функцию в сочетании с оператором отрицания "!".

Пример:

wdups <- rep(1:5,5)
wodups <- wdups[which(!duplicated(wdups))]

Надеюсь, это поможет.


7

Вы также можете использовать пакет sqldf в R.

Z <- sqldf('SELECT DISTINCT tablename.columnname FROM tablename ')
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.