[R] I'm sure I'm missing something with formatC() or sprintf()
William Dunlap
wdunlap at tibco.com
Thu Feb 23 20:49:10 CET 2012
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-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of z2.0
> Sent: Thursday, February 23, 2012 11:16 AM
> To: r-help at 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 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