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