On Fri, Mar 8, 2013 at 5:23 AM, chris201 <chris.r.benn...@btinternet.com> wrote: > Hi, > I have a large data frame and within this there is one column which contains > individual codes (eg. 1.1234.2a.2). I am splitting these codes into their 4 > components using strsplit (eg. "1", "1234", "2a", "2"). However there are > some individual codes which do not have a last component (eg. 2.4356.3b. ), > I want to give these codes a "1" as their last component (eg. 2.4356.3b.1) > but I can't get it to work. > > This is my example and attempt: > > sim.code<-c("1.1234.1a.1","1.1234.1a.2","1.3245.2c.5","4.6743.3c.","4.3254.6b.4","3.5463.2a.") > sim.val<-c(4,5,3,6,4,7) > sim.df<-data.frame(sim.code,sim.val) > > sim.df$sim.code2<-sub(".$",".1",sim.df$sim.code) > sim.df > > but this changes all the ends to ".1" >
1. Use "\\.$" like this: sim.code.1 <- sub("\\.$", ".1", sim.code) read.table(text = sim.code.1, sep = ".") 2. or without regular expressions DF <- read.table(text = sim.code, sep = ".") DF[is.na(DF)] <- "1" -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com ______________________________________________ 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.