R'deki bir vektördeki farklı değerleri listeleyin


98

Değerlerin replikatif olduğu bir vektördeki farklı değerleri nasıl listeleyebilirim? Demek istediğim, aşağıdaki SQL ifadesine benzer şekilde:

SELECT DISTINCT product_code
FROM data

Yanıtlar:


170

Şunu mu demek istiyorsun 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

Veriler aslında bir ise factor, levels()işlevi kullanabilirsiniz , örn.

levels( data$product_code )

Bir faktör değilse, ancak olması gerekiyorsa, factor()işlevi kullanarak önce faktöre dönüştürebilirsiniz , örneğin

levels( factor( data$product_code ) )

Yukarıda belirtildiği gibi başka bir seçenek de unique()işlevdir:

unique( data$product_code )

İkisi arasındaki temel fark (a'ya uygulandığında factor), levelskodlanmış ancak oluşmayan tüm düzeyler de dahil olmak üzere düzey sırasına göre bir karakter vektörü döndürmesidir. değerlerin ilk göründüğü sırada uniquebir döndürür factor, oluşmayan düzeyler atlanır (yine de levelsdöndürülen faktöre dahil olsa da ).


8

Yinelenen işlevi olumsuzlama operatörü "!" İle birlikte kullanmayı deneyin.

Misal:

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

Umarım yardımcı olur.


7

Ayrıca sqldf paketini R'de de kullanabilirsiniz.

Z <- sqldf('SELECT DISTINCT tablename.columnname FROM tablename ')

0

başka bir yol da dplyrpaketi kullanmak olabilir :

x = c(1,1,2,3,4,4,4)
dplyr::distinct(as.data.frame(x))
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.