Список различных значений в векторе в 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
csgillespie
источник
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возвращаемый коэффициент).

Isapir
источник
8

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

Пример:

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

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

Аль Р.
источник
7

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

Z <- sqldf('SELECT DISTINCT tablename.columnname FROM tablename ')
Клэй Бернс
источник