Skip to content
Back to formatted view

Raw Message

Message-ID: <4D028B91.5050408@ccbr.umn.edu>
Date: 2010-12-10T20:20:33Z
From: Erik Iverson
Subject: Reorder factor and address embedded escapes
In-Reply-To: <4D028A0C.3010801@aetiologic.ca>

Does the following help?

A = c("A\\nB", "C\\nD")
test <-data.frame(A)

#access levels directly to change names
levels(test$A) <- sub("\\\\n", "\n", levels(test$A))

#re-order levels of the factor
test$A <- relevel(test$A, "C\nD")


Rob James wrote:
> I am trying to reorder a factor variable that has embedded escape 
> characters.  The data begins as a csv file with a factor that includes 
> embedded new line characters.  By the time read.table has rendered it 
> into a data frame, the variable now has an extra backslash.
> 
> e.g.
> "This\nLabel" in the csv becomes "This\\nLabel" in the data frame.
> 
> So, I am trying to reorder the factor and deal with the introduction of 
> a secondary  \ .   Here's a small example:
> 
> 
> A = c("A\\nB", "C\\nD")
> test <-data.frame(A)
> str(test)
> test$reorderA <-factor(test$A, c("C\\nD", "A\\nB"))
> str(test)
> test$reorderB <-sub("\\\\n", "\n", test$reorderA)
> str(test)
> 
> When sub is applied to the now-correctly ordered factor, it returns to 
> the default ordering.
> 
> Suggestions?
> 
> ______________________________________________
> 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.