2013-01-13 16 views

Odpowiedz

9

Użyj np. sprintf():

myfunction <- function(id) { 
    sprintf("%03d.csv", id) 
} 

co daje

R> cat(myfunction(9), "\n") 
009.csv 
R> cat(myfunction(199), "\n") 
199.csv 
R> 
4

Chociaż już zaakceptowane @ odpowiedź Dirka ...

Problemem jest to, trzeba przejechać swój wkład w postaci numerycznej. Dla R, 009 ocenia się 9:

> 009 
[1] 9 

więc po uruchomieniu myfunction(009), to naprawdę działa myfunction(9). Nie powinno być zaskoczeniem, że otrzymujesz wynik "9.csv".

Zamiast tego, należy zdać wejście jako postać: „009”:

> myfunction("009") 
[1] "009.csv" 
+0

Chociaż to działa w tym przypadku problemem jest, że nie zawsze będzie w stanie wpisać w parametrach od a w linii poleceń i dodaj "", czasami funkcja będzie wywoływana z innej funkcji, nad którą nie masz kontroli, i która nie dodaje "", po prostu 009 i musisz upewnić się, że nie będzie 9 w twojej funkcji. Oto odpowiedź, której szukam (i sprowadziłem tutaj) – chrisfs

Powiązane problemy