Message-ID: <CADv2QyHkzSD+cVTF8Rz9WGgQkg45uhK_QDgRt3K_+X+DPZ+F3g@mail.gmail.com>
Date: 2011-11-22T18:39:27Z
From: Dennis Murphy
Subject: Removing rows in dataframe w'o duplicated values
In-Reply-To: <CADv2QyGb3KMjN1VB+-Fo9cR0MzmVWo0ARotZjbq+iUMN57EibQ@mail.gmail.com>
Sorry, you need this first:
L <- split(dat, dat$id)
do.call(rbind, lapply(L, function(d) if(nrow(d) > 1) return(d)))
D.
On Tue, Nov 22, 2011 at 10:38 AM, Dennis Murphy <djmuser at gmail.com> wrote:
> Hi:
>
> Here's one way:
>
> do.call(rbind, lapply(L, function(d) if(nrow(d) > 1) return(d)))
> ? ?id value value2
> 1.1 ?1 ? ? 5 ? ? ?1
> 1.2 ?1 ? ? 6 ? ? ?4
> 1.3 ?1 ? ? 7 ? ? ?3
> 3.5 ?3 ? ? 5 ? ? ?4
> 3.6 ?3 ? ? 4 ? ? ?3
>
> HTH,
> Dennis
>
> On Tue, Nov 22, 2011 at 9:43 AM, AC Del Re <delre at wisc.edu> wrote:
>> Hi,
>>
>> Is there an easy way to remove dataframe rows without duplicated values of
>> a specified column ('id')? ?e.g.,
>>
>> dat <- data.frame(id = c(1,1,1,2,3,3), value = c(5,6,7,4,5,4), value2 =
>> c(1,4,3,3,4,3))
>> dat
>>
>> ?id value value2
>> 1 ?1 ? ? 5 ? ? ?1
>> 2 ?1 ? ? 6 ? ? ?4
>> 3 ?1 ? ? 7 ? ? ?3
>> 4 ?2 ? ? 4 ? ? ?3
>> 5 ?3 ? ? 5 ? ? ?4
>> 6 ?3 ? ? 4 ? ? ?3
>>
>>
>> This is sample data and the real data has hundreds of rows. In this
>> case, only row 4 does not have a duplicated id and I would like to
>> remove it without using:
>>
>>
>> dat$id[4] <- NULL
>>
>>
>> Any help is appreciated!
>>
>>
>> AC
>>
>> ? ? ? ?[[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>