This is basically your approach, but automated a bit more than you describe:
library(gsubfn) tmp <- strsplit('one\ttwo\nthree\tfour\n12345678\t910\na\tbc\tdef\tghi\n','\n')[[1]] tmp2 <- gsubfn('([^\t]+)\t', function(x) { ln <- nchar(x) nsp <- 8-(ln %% 8) sp <- paste( rep(' ', nsp), collapse='' ) paste(x,sp, sep='') }, tmp ) tmp2 cat(tmp2, sep='\n') This is based on the assumption of tab stops every 8 columns, change the 2 8's above if you want something different. Hope this helps, -- Gregory (Greg) L. Snow Ph.D. Statistical Data Center Intermountain Healthcare [EMAIL PROTECTED] 801.408.8111 > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > project.org] On Behalf Of Dennis Fisher > Sent: Tuesday, December 09, 2008 9:40 AM > To: [EMAIL PROTECTED] > Subject: [R] Replacing tabs with appropriate number of spaces > > Colleagues, > > Platform: OS X (but issue applies to all platforms) > Version: 2.8.0 > > I have a mixture of text and data that I am outputting via R to a pdf > document (using a fixed-width font). The text contains tabs that > align columns properly with a fixed-width font in a terminal window. > However, when the PDF document is created, the concept of a tab is not > invoked properly and columns do not align. > > I could use brute force as follows: > 1. identify lines of text containing tabs > 2. strsplit on tabs > 3. count characters preceding the tab, then replace the tab with the > appropriate number of spaces (e.g., if the string preceding the tab > has 29 characters, add 3 spaces), then paste(..., sep="") > > However, I am sure a more elegant approach exists. Can anyone offer > one? > > Dennis > > > Dennis Fisher MD > P < (The "P Less Than" Company) > Phone: 1-866-PLessThan (1-866-753-7784) > Fax: 1-415-564-2220 > www.PLessThan.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. ______________________________________________ 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.