Removing rows in dataframe w'o duplicated values
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.