Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

unique() for more than one variable

Tags:

r

unique

I have the following data frame in R:

> str(df) 'data.frame':   545227 obs. of  15 variables:  $ ykod : int  93 93 93 93 93 93 93 93 93 93 ...  $ yad  : Factor w/ 42 levels "BAKUGAN","BARBIE",..: 30 30 30 30 30 30 30 30 30 30 ...  $ per  : Factor w/ 3 levels "2 AYLIK","3 AYLIK",..: 3 3 3 3 3 3 3 3 3 3 ...  $ donem: int  201101 201101 201101 201101 201101 201101 201101 201101 201101 201101 ...  $ sayi : int  201101 201101 201101 201101 201101 201101 201101 201101 201101 201101 ...  $ mkod : int  4 5 9 11 12 18 20 22 25 26 ...  $ mad  : Factor w/ 10464 levels "   Defne Market          ",..: 405 8075 9710 10145 9297 7973 2542 3892 2759 5769 ...  $ mtip : Factor w/ 29 levels "Abone Bürosu                                      ",..: 2 20 20 2 2 2 2 2 2 2 ...  $ kanal: Factor w/ 2 levels "OB","SS": 2 2 2 2 2 2 2 2 2 2 ...  $ bkod : int  110565 110565 110565 110565 110565 110565 110565 110565 110565 110565 ...  $ bad  : Factor w/ 212 levels "4. Levent","500 Evler",..: 167 167 167 167 167 167 167 167 167 167 ...  $ bolge: Factor w/ 12 levels "Adana Şehiriçi",..: 7 7 7 7 7 7 7 7 7 7 ...  $ sevk : int  2 3 3 3 2 2 2 6 2 2 ...  $ iade : int  2 1 0 2 0 2 1 0 0 2 ...  $ satis: int  0 2 3 1 2 0 1 6 2 0 ... 

I want to list unique (like SQL's DISTINCT) values for selected multiple variables. For example, unique(yad) gives me the names of each 42 elements, but I need to extract two columns (yad and per together, with all unique combinations):

yad           per ---           --- BARBIE        AYLIK BAKUGAN       2 AYLIK MICKEY MOUSE  2 AYLIK TINKERBELL    3 AYLIK ...           ... 

How can I achieve this?

like image 603
Mehper C. Palavuzlar Avatar asked Oct 17 '11 07:10

Mehper C. Palavuzlar


People also ask

How do I get multiple unique values in Excel?

To extract unique values with condition, use the Excel UNIQUE and FILTER functions together: The FILTER function limits the data only to values that meet the condition. The UNIQUE function removes duplicates from the filtered list.

How can I get distinct values of multiple columns in SQL?

Select with distinct on all columns of the first query. Select with distinct on multiple columns and order by clause. Count() function and select with distinct on multiple columns.


1 Answers

How about using unique() itself?

df <- data.frame(yad = c("BARBIE", "BARBIE", "BAKUGAN", "BAKUGAN"),                  per = c("AYLIK",  "AYLIK",  "2 AYLIK", "2 AYLIK"),                  hmm = 1:4)  df #       yad     per hmm # 1  BARBIE   AYLIK   1 # 2  BARBIE   AYLIK   2 # 3 BAKUGAN 2 AYLIK   3 # 4 BAKUGAN 2 AYLIK   4  unique(df[c("yad", "per")]) #       yad     per # 1  BARBIE   AYLIK # 3 BAKUGAN 2 AYLIK 
like image 153
Josh O'Brien Avatar answered Sep 19 '22 15:09

Josh O'Brien