On Feb 8, 2010, at 11:39 AM, Jonathan wrote:

Hi all,
   I'm feeling a little guilty to ask this question, since I've
written a solution using a rather clunky for loop that gets the job
done.  But I'm convinced there must be a faster (and probably more
elegant) way to accomplish what I'm looking to do (perhaps using the
"merge" function?).  I figured somebody out there might've already
figured this out:

I have a dataframe with two columns (let's call them V1 and V2).  All
rows are unique, although column V1 has several redundant entries.

Ex:

    V1     V2
1    a        3
2    a        2
3    b        9
4    c        4
5    a        7
6    b        11


What I'd like is to return a dataframe cut down to have only unique
entires in V1.  V2 should contain a vector, for each V1, that is the
minimum of all the possible choices from the set of redundant V1's.

> rd.txt
function(txt, header=TRUE,...) {
      rd<-read.table(textConnection(txt), header=header, ...)
       closeAllConnections()
      rd}
> DF <- rd.txt("    V1     V2
+ 1    a        3
+ 2    a        2
+ 3    b        9
+ 4    c        4
+ 5    a        7
+ 6    b        11
+ ")
> tapply(DF$V2, DF$V1, min)
a b c
2 9 4

> as.data.frame.table(tapply(DF$V2, DF$V1, min))
  Var1 Freq
1    a    2
2    b    9
3    c    4
> DF2 <- as.data.frame.table(tapply(DF$V2, DF$V1, min))
> names(DF2) <- names(DF)
> DF2
  V1 V2
1  a  2
2  b  9
3  c  4


Example output:

     V1     V2
1     a        2
2     b        9
3     c        4


If somebody could (relatively easily) figure out how to get closer to
a solution, I'd appreciate hearing how.  Also, I'd be interested to
hear how you came upon the answer (so I can get better at searching
the R resources myself).

Regards,
Jonathan

______________________________________________
R-help@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.

David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
R-help@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.

Reply via email to