Hi Gregor,

There still exist simple functions to achive that goal:

Look at:
> x=1:111
> formatC(format="d",x,flag="0",width=ceiling(log10(max(x))))

[1] "001" "002" "003" "004" "005" "006" "007" "008" "009" "010" "011" "012" "013" "014" "015" "016" "017" "018" "019" "020"
[21] "021" "022" "023" "024" "025" "026" "027" "028" "029" "030" "031" "032" "033" "034" "035" "036" "037" "038" "039" "040"
[41] "041" "042" "043" "044" "045" "046" "047" "048" "049" "050" "051" "052" "053" "054" "055" "056" "057" "058" "059" "060"
[61] "061" "062" "063" "064" "065" "066" "067" "068" "069" "070" "071" "072" "073" "074" "075" "076" "077" "078" "079" "080"
[81] "081" "082" "083" "084" "085" "086" "087" "088" "089" "090" "091" "092" "093" "094" "095" "096" "097" "098" "099" "100"
[101] "101" "102" "103" "104" "105" "106" "107" "108" "109" "110" "111"



? formatC

HTH,

Eric


At 16:17 5/01/2005, Gregor GORJANC wrote:
Hello!

I am producing a set of images and I would like them to be sorted by names I give. I was able to produce my names and add integer to them. That is easy. But my problem lies in sort of file from this process:

figure_10.png
figure_11.png
figure_12.png
...
figure_1.png
figure_20.png
...

So I would like to convert integers to something like 01 if upper limit for
this conert is 10 or 001 for 100. I wrote a simple function (see below), but I do not know how this limit stuff can be imporved to work really well with default. Any suggestions?


int2char <- function(x, limit = max(x)) {

    # Description:
    # Converts integer to character such that numbers bellow limit get 0 in
    # front
    # Gregor GORJANC, 2005-01-05

    # Arguments:
    # x: vector of numbers
    # limit: limit up to which numbers should get 0 in front, default
    #        max(x)

    # Examples:
    # a <- seq(0, 20, 1)
    # int2char(a) # this does not work OK
    # int2char(a, limit = 10) # this does work OK

    # How to:
    # I would like that default would be more efficient - so it would
    # recognize that let say limit 20 in example above should actually be
    # 10 and so on.

    # Code:
    for (i in 1:length(x)) {
        if (x[i] < limit) {
            n[i] <- paste("0", x[i], sep  = "")
        } else {
            n[i] <- as.character(x[i])
        }
    }
    return(n)
}


-- Lep pozdrav / With regards, Gregor GORJANC

---------------------------------------------------------------
University of Ljubljana
Biotechnical Faculty       URI: http://www.bfro.uni-lj.si
Zootechnical Department    mail: gregor.gorjanc <at> bfro.uni-lj.si
Groblje 3                  tel: +386 (0)1 72 17 861
SI-1230 Domzale            fax: +386 (0)1 72 17 888
Slovenia

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Eric Lecoutre UCL / Institut de Statistique Voie du Roman Pays, 20 1348 Louvain-la-Neuve Belgium

tel: (+32)(0)10473050
[EMAIL PROTECTED]
http://www.stat.ucl.ac.be/ISpersonnel/lecoutre

If the statistics are boring, then you've got the wrong numbers. -Edward Tufte

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to