[R] how to order each element according to alphabet

Dennis Murphy djmuser at gmail.com
Fri Jul 15 11:40:22 CEST 2011


Is this what you're looking for?

Lines <- "

# Read in the above lines (for purposes of this example only)
# Note the stringsAs Factors = FALSE option!
df <- read.csv(textConnection(Lines), header = FALSE, stringsAsFactors = FALSE)
dm <- as.matrix(df)   # convert to a character matrix

# Function to sort a character string in alphabetical (lexical) order
sortfun <- function(x)
   paste(sort(unlist(strsplit(x, ''))), collapse = '')

# Apply to the rows of the matrix
t(apply(df, 1, function(x) sapply(x, sortfun)))

     V1    V2      V3
[1,] "AGS" "UWX"   "ADEFJLO"
[2,] "E"   "DEITW" "DFOR"

If you need to do this for only a subset of your variables, create a
character submatrix and follow the script above on that, after which
you would need to do some post-processing on your own.


On Thu, Jul 14, 2011 at 6:18 PM, onthetopo <jint83 at sina.com> wrote:
> Hi there,
>  I have a large amino acid csv file like this:
> input.txt:
> P,LV,Q,Z
> P,VL,Q,Z
> There is a problem with this file, since LV and VL are in fact the same
> thing.
> How do I order each element according to alphabetical order so that the
> desired output would look like:
> output.txt:
> P,LV,Q,Z
> P,LV,Q,Z
> --
> View this message in context: http://r.789695.n4.nabble.com/how-to-order-each-element-according-to-alphabet-tp3668997p3668997.html
> Sent from the R help mailing list archive at Nabble.com.
> ______________________________________________
> 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.

More information about the R-help mailing list