Is this what you want:
> v<-c(rep("v1",3), rep("v2",4),
rep("v3",2),"v4",rep("v5",6))
>
> tt<-c(1,2,3,3,1,2,3,4,5,2,7,9,2,3,1,4)
> d<-data.frame(v,tt)
> do.call(rbind, lapply(split(d, d$v), function(x){
+ x[which.min(x$tt),]
+ }))
v tt
v1 v1 1
v2 v2 1
v3 v3 4
v4 v4 2
v5 v5 1>
>
On Sat, May 17, 2008 at 3:48 PM, souvik banerjee <bansouvik@gmail.com>
wrote:
> Hi,
> I am facing a problem in data manipulation. Suppose a data frame
> contains two columns. The first column consists of some repeated characters
> and the second consists of some numerical values. The problem is to extract
> and create a new data frame consisting of rows of each unique character of
> first column with minimum second column entry. For example if "d"
is the
> data frame, created with the following R code
>
>
> v<-c(rep("v1",3), rep("v2",4),
rep("v3",2),"v4",rep("v5",6))
>
> tt<-c(1,2,3,3,1,2,3,4,5,2,7,9,2,3,1,4)
> d<-data.frame(v,tt)
>
> then the answer would be
>
>
> v tt
>
> v1 1
>
> v2 1
>
> v3 4
>
> v4 2
>
> v5 1
>
>
>
> I have written a small R code given below that does the job (assumming
"d"
> to the initial data frame)
>
>
>
> b<-data.frame(NULL)
>
> i<-1
>
> x<-d[1,]
>
> while(i<dim(d)[1])
>
> {
>
> if(length(unique(x[,1]))==1)
>
> {
>
> x<-rbind(x,d[i+1,])
>
> i=i+1
>
> }
>
> if(length(unique(x[,1]))>1)
>
> {
>
> y<-x[1:(nrow(x)-1),]
>
> z<-which(y[,2]==min(y[,2]))
>
> b<-rbind(b,y[z,])
>
> x<-d[i,]
>
> }
>
> }
>
> z<-which(x[,2]==min(x[,2]))
>
> b<-rbind(b,x[z,])
>
> b
>
>
>
> The code is working properly giving me the desired result, but the problem
> is that I have to repeat this procedure for many data frames and nearly
> all
> the data frame contains approximately 15,000 repeated characters with more
> than 12,500 unique characters. Using the above code in a loop is taking a
> considerable amount of time to compute.
> Can anybody suggest me of a faster approach?
>
> Regards
>
> Souvik Bandyopadhyay
> Research Fellow,
> Dept Of Statistics
> Calcutta University
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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<http://www.r-project.org/posting-guide.html>
> and provide commented, minimal, self-contained, reproducible code.
>
--
Jim Holtman
Cincinnati, OH
+1 513 646 9390
What is the problem you are trying to solve?
[[alternative HTML version deleted]]