【发布时间】:2014-05-13 05:28:41
【问题描述】:
我大约一周前才开始使用 r。在我的目录中,我有名为 001、002、...010、...331 的 csv 文件。在我下面的部分功能中,要求用户输入 id(例如 1:9)。然后将 id 转换为 001、002、003、...009。但是,如果用户输入 1:10 作为 id,该函数会将 id [10] 输出为“0010”而不是“010”。这会导致我的其余功能失败。关于可能发生的事情有什么建议吗?如果我输入1:10,我想得到001、002、003、004、005、006、007、008、009和010。
pollutantmean <- function(directory, pollutant, id) {
if((id>=1) && (id<10)) {
fn <- paste("00",id,sep="")
print(fn)
} else if((id>=10) && (id<=99)) {
fn <- paste("0",id,sep="")
print(fn)
} else {
fn <- id
print(fn)
}
请我不想为此使用 R 应用功能。我还没走到那一步。
【问题讨论】:
-
您可以使用
sprintf为自己节省大量时间 - 例如sprintf("%03d",1:10) -
我只是用
fn <- sprintf("%03d",id)替换了所有这些,它就像魅力一样。这看起来就像 Java 中的System.out.printf。但是任何线索为什么我的第一个方法失败了?我无法理解。而且我们还没有在课堂上学习过这种流畅的 sprintf 方法,这表明我的第一种方法可能仍然可以进行一些调整。
标签: r