Hello,
I am trying to return a vector from a simply by but I cannot get it
working, even using simplify=TRUE.
res <-
data.frame(ID=c("a","a","a","b","b"),Score=c(0,1,2,0,1))
yoda <- by(res$Score,res$ID,max,simplify=T)
class(yoda)
[1] "by"
I would like it to return a vector with the names as the ID column. The
only way I could work out how to do this was
result <- as.vector(yoda)
names(result) <- names(yoda)
result
a b
2 1
Is there a better way?
Thanks
Dan
--
**************************************************************
Daniel Brewer, Ph.D.
Institute of Cancer Research
Molecular Carcinogenesis
Email: daniel.brewer at icr.ac.uk
**************************************************************
The Institute of Cancer Research: Royal Cancer Hospital, a charitable Company
Limited by Guarantee, Registered in England under Company No. 534147 with its
Registered Office at 123 Old Brompton Road, London SW7 3RP.
This e-mail message is confidential and for use by the a...{{dropped:2}}
If you just want that result, you can try tapply instead of by.> tapply(res$Score,res$ID,max)a b 2 1 On Mon, Nov 3, 2008 at 7:31 PM, Daniel Brewer <daniel.brewer at icr.ac.uk> wrote:> Hello, > > I am trying to return a vector from a simply by but I cannot get it > working, even using simplify=TRUE. > > res <- data.frame(ID=c("a","a","a","b","b"),Score=c(0,1,2,0,1)) > yoda <- by(res$Score,res$ID,max,simplify=T) > class(yoda) > [1] "by" > > I would like it to return a vector with the names as the ID column. The > only way I could work out how to do this was > > result <- as.vector(yoda) > names(result) <- names(yoda) > result > a b > 2 1 > > Is there a better way? > > Thanks > > Dan > > -- > ************************************************************** > Daniel Brewer, Ph.D. > > Institute of Cancer Research > Molecular Carcinogenesis > Email: daniel.brewer at icr.ac.uk > ************************************************************** > > The Institute of Cancer Research: Royal Cancer Hospital, a charitable Company Limited by Guarantee, Registered in England under Company No. 534147 with its Registered Office at 123 Old Brompton Road, London SW7 3RP. > > This e-mail message is confidential and for use by the...{{dropped:19}}
Hi r-help-bounces at r-project.org napsal dne 03.11.2008 12:31:31:> Hello, > > I am trying to return a vector from a simply by but I cannot get it > working, even using simplify=TRUE. > > res <- data.frame(ID=c("a","a","a","b","b"),Score=c(0,1,2,0,1)) > yoda <- by(res$Score,res$ID,max,simplify=T) > class(yoda) > [1] "by" > > I would like it to return a vector with the names as the ID column. The > only way I could work out how to do this was > > result <- as.vector(yoda) > names(result) <- names(yoda) > result > a b > 2 1Maybe tapply? yoda <- tapply(res$Score,res$ID,max,simplify=T) Regards Petr> > Is there a better way? > > Thanks > > Dan > > -- > ************************************************************** > Daniel Brewer, Ph.D. > > Institute of Cancer Research > Molecular Carcinogenesis > Email: daniel.brewer at icr.ac.uk > ************************************************************** > > The Institute of Cancer Research: Royal Cancer Hospital, a charitableCompany> Limited by Guarantee, Registered in England under Company No. 534147with its> Registered Office at 123 Old Brompton Road, London SW7 3RP. > > This e-mail message is confidential and for use by the a...{{dropped:2}} > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guidehttp://www.R-project.org/posting-guide.html> and provide commented, minimal, self-contained, reproducible code.