[R] Problems using unique function and !duplicated

Claudia Beleites cbeleites at units.it
Mon Feb 28 17:10:14 CET 2011


Jon,

you need to combine the conditions into one logical value, e.g. cond1 & cond2, 
e.g. !duplicated(test$date) & !duplicated(test$var2)

However, I doubt that this is what you want: you remove too many rows (rows 
whose single values appeared already, even if the combination is unique).

Have a look at the wiki, though: 
http://rwiki.sciviews.org/doku.php?id=tips:data-frames:count_and_extract_unique_rows

Claudia


On 02/28/2011 04:51 PM, JonC wrote:
> Hi, I am trying to simultaneously remove duplicate variables from two or more
> variables in a small R data.frame. I am trying to reproduce the SAS
> statements from a Proc Sort with Nodupkey for those familiar with SAS.
>
> Here's my example data :
>
> test<- read.csv("test.csv", sep=",", as.is=TRUE)
>> test
>        date var1 var2 num1 num2
> 1 28/01/11    a    1  213   71
> 2 28/01/11    b    1  141   47
> 3 28/01/11    c    2  867  289
> 4 29/01/11    a    2  234   78
> 5 29/01/11    b    2  666  222
> 6 29/01/11    c    2  912  304
> 7 30/01/11    a    3  417  139
> 8 30/01/11    b    3  108   36
> 9 30/01/11    c    2  288   96
>
> I am trying to obtain the following, where duplicates of date AND var2 are
> removed from the above data.frame.
>
> date          	var1	var2	num1	num2
> 28/01/2011	a	1	213	       71
> 28/01/2011	c	2	867	       289
> 29/01/2011	a	2	234	       78
> 30/01/2011	c	2	288	       96
> 30/01/2011	a	3	417	       139
>
>
>
> If I use the !duplicated function with one variable everything works fine.
> However I wish to remove duplicates of both Date and var2.
>
>   test[!duplicated(test$date),]
>          date var1 var2 num1 num2
> 1 0011-01-28    a    1  213   71
> 4 0011-01-29    a    2  234   78
> 7 0011-01-30    a    3  417  139
>
> test2<- test[!duplicated(test$date),!duplicated(test$var2),]
> Error in `[.data.frame`(test, !duplicated(test$date),
> !duplicated(test$var2),  :   undefined columns selected
>
> I get an error ?
> I got different errors when using the unique() function.
>
> Can anybody solve this ?
>
> Thanks in advance.
>
> Jon
>
>


-- 
Claudia Beleites
Dipartimento dei Materiali e delle Risorse Naturali
Università degli Studi di Trieste
Via Alfonso Valerio 6/a
I-34127 Trieste

phone: +39 0 40 5 58-37 68
email: cbeleites at units.it



More information about the R-help mailing list