[R] Selecting rows according to a column

William Dunlap wdunlap at tibco.com
Wed Oct 28 17:31:34 CET 2009


> -----Original Message-----
> From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] On Behalf Of Erik Iverson
> Sent: Wednesday, October 28, 2009 9:22 AM
> To: Gurpal Kalsi; r-help at r-project.org
> Subject: Re: [R] Selecting rows according to a column
> 
> Hello,
> 
> Here's an idea: 
> 
> ifelse(z$c == "a", z$a, z$b)

If there may be many columns to select from (so
the nested ifelse's become tedious) one might try
   > z[,-3][cbind(seq_len(nrow(z)),z$c)]
   [1]  1  2 30 40 50
The initial [,-3] is there only so when the data.frame
is converted to a matrix by [.data.frame's processing
of a matrix subscript it becomes a numeric matrix, not
a character matrix.

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com  

> 
> 
> > -----Original Message-----
> > From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org]
> > On Behalf Of Gurpal Kalsi
> > Sent: Wednesday, October 28, 2009 11:15 AM
> > To: r-help at r-project.org
> > Subject: [R] Selecting rows according to a column
> > 
> > Hi,
> > 
> > With a data such as:
> > > z = data.frame(a = 1:5, b=10*a, c = c("a", "a", "b", "b", "b") )
> > * a  b  c*
> >  *1* 10 *a*
> >  *2* 20 *a*
> >  3 *30* *b*
> >  4 *40* *b*
> >  5 *50* *b*
> > 
> > Can anyone suggest a way to select [1, 2, 30, 40, 50],
> > ie. using column "c" to specify which column is selected 
> for each row.
> > 
> > Many thanks
> > 
> > G
> > 
> > 	[[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.
> 
> ______________________________________________
> 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