[R] Conditionally swap items in a data frame
df1 - data.frame(a = LETTERS[1:2], b = LETTERS[3:4], c = 1:2) I am looking for an idiom that swaps the elements of df$a and df$b when (e.g.) df$c == 2, resulting in df2 - data.frame(a = LETTERS[c(1, 4)], b = LETTERS[c(3, 2)], c = 1:2) _ Professor Michael Kubovy University of Virginia Department of Psychology USPS: P.O.Box 400400Charlottesville, VA 22904-4400 Parcels:Room 102Gilmer Hall McCormick RoadCharlottesville, VA 22903 Office:B011+1-434-982-4729 Lab:B019+1-434-982-4751 Fax:+1-434-982-4766 WWW:http://www.people.virginia.edu/~mk9y/ [[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.
Re: [R] Conditionally swap items in a data frame
temp-df1$a df$a-ifelse(df1$c == 2, df$b, df$a) df$b-ifelse(df1$c == 2, temp, df$b) -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael Kubovy Sent: Thursday, April 17, 2008 10:53 AM To: [EMAIL PROTECTED] Subject: [R] Conditionally swap items in a data frame df1 - data.frame(a = LETTERS[1:2], b = LETTERS[3:4], c = 1:2) I am looking for an idiom that swaps the elements of df$a and df$b when (e.g.) df$c == 2, resulting in df2 - data.frame(a = LETTERS[c(1, 4)], b = LETTERS[c(3, 2)], c = 1:2) _ Professor Michael Kubovy University of Virginia Department of Psychology USPS: P.O.Box 400400Charlottesville, VA 22904-4400 Parcels:Room 102Gilmer Hall McCormick RoadCharlottesville, VA 22903 Office:B011+1-434-982-4729 Lab:B019+1-434-982-4751 Fax:+1-434-982-4766 WWW:http://www.people.virginia.edu/~mk9y/ [[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.
Re: [R] Conditionally swap items in a data frame
Try also: df1 - data.frame(a = LETTERS[1:2], b = LETTERS[3:4], c = 1:2) df1$a - as.character(df1$a) #if is factor df1$b - as.character(df1$b) #if is factor df1[df1$c == 2, ] - c(subset(df1, c == 2, select = c(b, a)), 2) On Thu, Apr 17, 2008 at 11:52 AM, Michael Kubovy [EMAIL PROTECTED] wrote: df1 - data.frame(a = LETTERS[1:2], b = LETTERS[3:4], c = 1:2) I am looking for an idiom that swaps the elements of df$a and df$b when (e.g.) df$c == 2, resulting in df2 - data.frame(a = LETTERS[c(1, 4)], b = LETTERS[c(3, 2)], c = 1:2) _ Professor Michael Kubovy University of Virginia Department of Psychology USPS: P.O.Box 400400Charlottesville, VA 22904-4400 Parcels:Room 102Gilmer Hall McCormick RoadCharlottesville, VA 22903 Office:B011+1-434-982-4729 Lab:B019+1-434-982-4751 Fax:+1-434-982-4766 WWW: http://www.people.virginia.edu/~mk9y/http://www.people.virginia.edu/%7Emk9y/ [[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. -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40 S 49° 16' 22 O [[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.