English 中文(简体)
低温和中性
原标题:Stripping non A-Z characters in vector in R
  • 时间:2011-09-24 22:53:12
  •  标签:
  • r
  • letters

I have a vector of usernames that have non A-Z characters in them. I want to be able to strip those characters out. I was told to use letters vector but y =x[letters] doesn t seem to work.

增 编

最佳回答

如果x 是您的病媒,则使用一个简单的距离表,以gsub取代,并用空壳取代所有。 采用<条码>否定了模式:

gsub("[^a-zA-Z]", "", x)

例如,有一些简单的数据。

 gsub("[^a-zA-Z]", "", c(letters, LETTERS, "3s8t7a2c9k:o3v8e7r%F%L^O#W%&^%@#^"))
 [1] "a"             "b"             "c"             "d"             "e"             "f"             "g"             "h"            
 [9] "i"             "j"             "k"             "l"             "m"             "n"             "o"             "p"            
[17] "q"             "r"             "s"             "t"             "u"             "v"             "w"             "x"            
[25] "y"             "z"             "A"             "B"             "C"             "D"             "E"             "F"            
[33] "G"             "H"             "I"             "J"             "K"             "L"             "M"             "N"            
[41] "O"             "P"             "Q"             "R"             "S"             "T"             "U"             "V"            
[49] "W"             "X"             "Y"             "Z"             "stackoverFLOW"
问题回答

或许这是你想要的。

username <- "user12_AB"
strip_non_letters <- function(s) {
  idx <- which(strsplit(tolower(s),"")[[1]] %in% letters)
  paste(strsplit(s, "")[[1]][idx], collapse="")
}
strip_non_letters(username)

与Karsten的上述相似,希望不要太多余。

    usernames <- c("A!ex25","Goerge?","H@rry","Dumbname89")
    # a function to cut out non-letters
    onlyletters <- function(x){
    chars <- unlist(strsplit(x,split=""))
    charsout <- chars[chars%in%c(letters,LETTERS)]
    paste(charsout,sep="",collapse="")
    }
    sapply(usernames,onlyletters)
    > A!ex25    Goerge?      H@rry Dumbname89 
    > "Aex"   "Goerge"     "Hrry" "Dumbname" 




相关问题
How to plot fitted model over observed time series

This is a really really simple question to which I seem to be entirely unable to get a solution. I would like to do a scatter plot of an observed time series in R, and over this I want to plot the ...

REvolution for R

since the latest Ubuntu release (karmic koala), I noticed that the internal R package advertises on start-up the REvolution package. It seems to be a library collection for high-performance matrix ...

R - capturing elements of R output into text files

I am trying to run an analysis by invoking R through the command line as follows: R --no-save < SampleProgram.R > SampleProgram.opt For example, consider the simple R program below: mydata =...

R statistical package: wrapping GOFrame objects

I m trying to generate GOFrame objects to generate a gene ontology mapping in R for unsupported organisms (see http://www.bioconductor.org/packages/release/bioc/vignettes/GOstats/inst/doc/...

Changing the order of dodged bars in ggplot2 barplot

I have a dataframe df.all and I m plotting it in a bar plot with ggplot2 using the code below. I d like to make it so that the order of the dodged bars is flipped. That is, so that the bars labeled "...

Strange error when using sparse matrices and glmnet

I m getting a weird error when training a glmnet regression. invalid class "dgCMatrix" object: length(Dimnames[[2]]) must match Dim[2] It only happens occasionally, and perhaps only under larger ...

Generating non-duplicate combination pairs in R

Sorry for the non-descriptive title but I don t know whether there s a word for what I m trying to achieve. Let s assume that I have a list of names of different classes like c( 1 , 2 , 3 , 4 ) ...

Per panel smoothing in ggplot2

I m plotting a group of curves, using facet in ggplot2. I d like to have a smoother applied to plots where there are enough points to smooth, but not on plots with very few points. In particular I d ...

热门标签