[R] Selecting rows according to a column
Adaikalavan Ramasamy
a.ramasamy at imperial.ac.uk
Wed Oct 28 17:25:13 CET 2009
Not very elegant but try:
z <- data.frame(a = 1:5, b=10*(1:5), c = c("a", "a", "b", "b", "b") )
z[ cbind( 1:nrow(z), match( as.character(z$c) , colnames(z) ) ) ]
If you have very few columns, you can use ifelse() too.
Regards, Adai
Gurpal Kalsi wrote:
> 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.
More information about the R-help
mailing list