Skip to content

add leading zeros

7 messages · LCOG1, Jorge I Velez, R. Michael Weylandt +3 more

#
Hi all, 
     Trying to use an apply to add leading zeros to a set of values in a
given vector.  I only want to add enough zeros so that the total number of
characters is 5, so if I have an element "1" i want "00001" or "9000" I want
"09000".  I tried 

vec <- 1:1000
sapply(vec, FUN = sprintf(paste("%0",(5-nchar(x)),"d",sep=""),x)) 

but she doesnt work.  I struggle with the apply family for sure.  Thanks

Josh 



--
View this message in context: http://r.789695.n4.nabble.com/add-leading-zeros-tp4638031.html
Sent from the R help mailing list archive at Nabble.com.
#
Hi Josh,
Check ?formatC and ?sprintf for some options.
Regards,
Jorge.-

Sent from my phone. Please excuse my brevity and misspelling.
On Jul 27, 2012, at 12:49 AM, LCOG1 <jroll at lcog.org> wrote:

            
#
Much easier than you think:

x <- c(1L, 9000L)

sprintf("%05i",x)

Best,
Michael
On Thu, Jul 26, 2012 at 8:08 PM, LCOG1 <jroll at lcog.org> wrote:
#
Hello,

Here is a function that I wrote some time ago.

# pad with zeros
padz <- function(x, width=max(nchar(x)), fill="0")
     gsub(" ", fill, formatC(x, width=width))
##------------- test
padz( c(1, 10, 100) )
padz(1:10, 4)
##------------- non-sense
padz(-5:0, 4)
padz(runif(10))


Hope this helps,

Rui Barradas

Em 27-07-2012 02:08, LCOG1 escreveu:
#
HI Rui,

Not sure how to place the "-" before the zeros.


padz(-5:0,4)
[1] "00-5" "00-4" "00-3" "00-2" "00-1" "0000"
?padz(-(5:0),4)
[1] "00-5" "00-4" "00-3" "00-2" "00-1" "0000"


?formatC(-5:0,width=4,format="d",flag="0")
[1] "-005" "-004" "-003" "-002" "-001" "0000"
padz(1:-10,4)
?[1] "0001" "0000" "00-1" "00-2" "00-3" "00-4" "00-5" "00-6" "00-7" "00-8"
[11] "00-9" "0-10"
?formatC(1:-10,width=4,format="d",flag="0")
?[1] "0001" "0000" "-001" "-002" "-003" "-004" "-005" "-006" "-007" "-008"
[11] "-009" "-010"


A.K.



----- Original Message -----
From: Rui Barradas <ruipbarradas at sapo.pt>
To: LCOG1 <jroll at lcog.org>
Cc: r-help <r-help at r-project.org>
Sent: Friday, July 27, 2012 7:03 AM
Subject: Re: [R] add leading zeros

Hello,

Here is a function that I wrote some time ago.

# pad with zeros
padz <- function(x, width=max(nchar(x)), fill="0")
? ?  gsub(" ", fill, formatC(x, width=width))
##------------- test
padz( c(1, 10, 100) )
padz(1:10, 4)
##------------- non-sense
padz(-5:0, 4)
padz(runif(10))


Hope this helps,

Rui Barradas

Em 27-07-2012 02:08, LCOG1 escreveu:
______________________________________________
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.
#
HI Rui,

i found it.? Though, it doesn't make much sense, trying to be consistent with formatC.

padz <- function(x, width=max(nchar(x)), fill="0")
?gsub(" ",fill, formatC(x,width=width,flag="0"))
[1] "-005" "-004" "-003" "-002" "-001" "0000"

A.K.

----- Original Message -----
From: Rui Barradas <ruipbarradas at sapo.pt>
To: LCOG1 <jroll at lcog.org>
Cc: r-help <r-help at r-project.org>
Sent: Friday, July 27, 2012 7:03 AM
Subject: Re: [R] add leading zeros

Hello,

Here is a function that I wrote some time ago.

# pad with zeros
padz <- function(x, width=max(nchar(x)), fill="0")
? ?  gsub(" ", fill, formatC(x, width=width))
##------------- test
padz( c(1, 10, 100) )
padz(1:10, 4)
##------------- non-sense
padz(-5:0, 4)
padz(runif(10))


Hope this helps,

Rui Barradas

Em 27-07-2012 02:08, LCOG1 escreveu:
______________________________________________
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.
#
This solution was the most elegant.  Thanks everyone.  

Josh 

-----Original Message-----
From: R. Michael Weylandt [mailto:michael.weylandt at gmail.com] 
Sent: Thursday, July 26, 2012 9:55 PM
To: ROLL Josh F
Cc: r-help at r-project.org
Subject: Re: [R] add leading zeros

Much easier than you think:

x <- c(1L, 9000L)

sprintf("%05i",x)

Best,
Michael
On Thu, Jul 26, 2012 at 8:08 PM, LCOG1 <jroll at lcog.org> wrote: