try the following: strg <- c("123:abc", "qwe:789f", "abcde", "a:fd", "567") sapply(strsplit(strg, ":"), function(x){ if (length(x) == 1) x <- c(x, NA) x })
I hope it helps. Best, Dimitris ---- Dimitris Rizopoulos Biostatistical Centre School of Public Health Catholic University of Leuven Address: Kapucijnenvoer 35, Leuven, Belgium Tel: +32/(0)16/336899 Fax: +32/(0)16/337015 Web: http://med.kuleuven.be/biostat/ http://www.student.kuleuven.be/~m0390867/dimitris.htm ----- Original Message ----- From: "Daniel Brewer" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, March 04, 2008 2:54 PM Subject: [R] Best way to strsplit a column > Hello, > > I have a data.frame with a column that I would like to split into > based > around the delimiter ":". This is a useful feature in Excel. I > cannot > work out the best way to do it in R. I am sure you need to use > strsplit, but that returns a list. The problem is that some values > in > the column do not contain a ":" so should have a "NA" in the second > column of the result, and this makes doing an unlist a non-starter. > > Any ideas? > > Many thanks > > Daniel Brewer > > The Institute of Cancer Research: Royal Cancer Hospital, a > charitable Company Limited by Guarantee, Registered in England under > Company No. 534147 with its Registered Office at 123 Old Brompton > Road, London SW7 3RP. > > This e-mail message is confidential and for use by the...{{dropped:14}} ______________________________________________ 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.