There is probably a more ellegant way, but:

> df <-
data.frame(p1=c(1,2,1),p2=c(3,3,2),p3=c(2,1,3),p4=c(5,6,4),p5=c(4,4,6),p6=c(6,5,5))
> as.data.frame(t(apply(df,1,function(x) names(x)[match(1:6,x)])))
  V1 V2 V3 V4 V5 V6
1 p1 p3 p2 p5 p4 p6
2 p3 p1 p2 p5 p6 p4
3 p1 p2 p3 p4 p6 p5
>


On Mon, Feb 13, 2012 at 2:07 PM, David Studer <studerov@gmail.com> wrote:

> Hello everybody,
>
> I have the following problem and have no idea how to solve it:
>
> In my dataframe I have six columns representing six societal problems (p1,
> p2, ..., p6).
> The values are ranks between 1 (worst problem) and 6 (best problem)
>
>
> p1 p2 p3  p4 p5 p6
> 1   3   2   5   4   6
> 2   3   1   6   4   5
> 1   2   3   4   6   5
>
> but I'd like the dataframe the other way round:
> 1    2    3    4    5    6
> p1  p3  p2  p4  p4  p6
> p3  p1  p2  p5  p6  p4
> p1  p2  p3  p4  p6  p5
>
> Can anyone help?
>
> Thanks!
>
>        [[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.
>

	[[alternative HTML version deleted]]

