sprintf's "%<number>s" format descriptor ignores initial 0's in <number>, in C's sprintf and in R's. Here are 2 ways to do it: > z <- c("5", "45", "345", "2345", "12345") > sprintf("%05d", as.integer(z)) [1] "00005" "00045" "00345" "02345" "12345" > gsub(" ", "0", sprintf("%5s", z)) [1] "00005" "00045" "00345" "02345" "12345"
Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf Of z2.0 > Sent: Thursday, February 23, 2012 11:16 AM > To: r-help@r-project.org > Subject: [R] I'm sure I'm missing something with formatC() or sprintf() > > I have a four-digit string I want to convert to five digits. Take the > following frame: > > zip > 2108 > 60321 > 60321 > 22030 > 91910 > > I need row 1 to read '02108'. This forum directed me to formatC previously > (thanks!) That usually works but, for some reason, it's not in this > instance. Neither of the syntaxes below change '2108' to '02108.' The values > in cand_receipts[,1] are of type 'character.' > > cand_receipts[,1] <- formatC(cand_receipts[,1], width = 5, format = 's', > flag = '0') > cand_receipts[,1] <- sprintf("%05s", cand_receipts[,1]) > > Any thoughts? > > Thanks, > > Zack > > > > > > -- > View this message in context: > http://r.789695.n4.nabble.com/I-m-sure-I-m-missing-something-with- > formatC-or-sprintf-tp4414905p4414905.html > Sent from the R help mailing list archive at Nabble.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.