[R] Removing rows in dataframe w'o duplicated values
Dennis Murphy
djmuser at gmail.com
Tue Nov 22 19:39:27 CET 2011
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.
>>
>
More information about the R-help
mailing list