Ein eingebundener Text mit undefiniertem Zeichensatz wurde abgetrennt. Name: nicht verf?gbar URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20120213/d2a5afa6/attachment.pl>
Change dataframe-structure
4 messages · David Studer, Bert Gunter, Gabor Grothendieck +1 more
P <- paste("P",1:6,sep="")
t(apply(yourdataframe,1,function(x)P[order(x)]))
## result is a mtrix, though.
-- Bert
On Mon, Feb 13, 2012 at 2:07 PM, David Studer <studerov at 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 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.
Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
On Mon, Feb 13, 2012 at 5:07 PM, David Studer <studerov at 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
First we read the data and then rearrange it into long form (DF) and
turn that into a 2d matrix (tapply):
Lines <- "p1 p2 p3 p4 p5 p6
1 3 2 5 4 6
2 3 1 6 4 5
1 2 3 4 6 5"
DF0 <- read.table(text = Lines, header = TRUE)
DF <- as.data.frame.table(as.matrix(DF0), stringsAsFactors = FALSE,
responseName = "Ranks")
tapply(DF[["Var2"]], DF[-2], c)
The result of the last statement is:
Ranks
Var1 1 2 3 4 5 6
A "p1" "p3" "p2" "p5" "p4" "p6"
B "p3" "p1" "p2" "p5" "p6" "p4"
C "p1" "p2" "p3" "p4" "p6" "p5"
Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20120213/1c404132/attachment.pl>