[R] string split at xth position

arun smartpink111 at yahoo.com
Wed Mar 13 19:27:21 CET 2013


Hi,

If you have cases like these:
 x1<- c("a1b11","a10b2","a2b2","a140b31")
 lapply(list(c(1,2),c(3,4)),function(i) substr(x1,i[1],i[2])) #it will not work
#[[1]]
#[1] "a1" "a1" "a2" "a1"

#[[2]]
#[1] "b1" "0b" "b2" "40"


let1<-unique(unlist(strsplit(gsub("\\d+","",x1),"")))
 split(unlist(strsplit(gsub("(\\w\\d+)(\\w\\d+)","\\1 \\2",x1)," ")),let1)
#$a
#[1] "a1"   "a10"  "a2"   "a140"

#$b
#[1] "b11" "b2"  "b2"  "b31"
A.K.




----- Original Message -----
From: arun <smartpink111 at yahoo.com>
To: Johannes Radinger <johannesradinger at gmail.com>
Cc: 
Sent: Wednesday, March 13, 2013 8:32 AM
Subject: Re: [R] string split at xth position

Also,
You could try:
 lapply(list(c(1,2),c(3,4)),function(i) substr(x,i[1],i[2]))
#[[1]]
#[1] "a1" "a2" "a1"

#[[2]]
#[1] "b1" "b2" "b2"
A.K.



----- Original Message -----
From: Johannes Radinger <johannesradinger at gmail.com>
To: r-help at r-project.org
Cc: 
Sent: Wednesday, March 13, 2013 4:37 AM
Subject: [R] string split at xth position

Hi,

I have a vector of strings like:
c("a1b1","a2b2","a1b2") which I want to spilt into two parts like:
c("a1","a2","a2") and c("b1","b2,"b2"). So there is
always a first part with a+number and a second part with b+number.
Unfortunately there is no separator I could use to directly split
the vectors.. Any idea how to handle such cases?

/Johannes

______________________________________________
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