[R] Selecting rows according to a column

Peter Ehlers ehlers at ucalgary.ca
Wed Oct 28 20:23:40 CET 2009


William Dunlap wrote:
>> -----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.
> 
Now _that's_ elegant!!

  -Peter Ehlers

> 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.
>>
> 
> ______________________________________________
> 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