Mehper C. Palavuzlar - 1 year ago 115
R Question

# Unique() for more than one variable

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?

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