【发布时间】:2012-12-29 16:10:03
【问题描述】:
我正在学习一个教程,并且在语法方面遇到了困难。我看不到哪里出错了,但我从控制台收到错误消息。
我在一个目录中有一个包含 300 个 csv 文件的列表。用户将输入他们正在寻找信息的文件的编号(id)。格式如下:001.csv, 002.csv, 090.csv 250.csv 等等。
该功能是将输入转换为字符串,即csv文件名。例如如果 id 为 5,则返回 005.csv。如果输入220,输出220.csv。
代码如下:
csvfile <- function(id) {
if (id < 10) { paste0(0,0,id,".csv"
} else if (id < 100) {paste0(0,id,".csv"
}else paste0(id,".csv")
}
这是控制台返回的错误:
> csvfile <- function(id) {
+ if (id < 10) { paste0(0,0,id,".csv"
+ } else if (id < 100) {paste0(0,id,".csv"
Error: unexpected '}' in:
"if (id < 10) { paste0(0,0,id,".csv"
}"
> }else paste0(id,".csv")
Error: unexpected '}' in "}"
> }
我可以看到 R 不喜欢我的一些 '}' 但不知道为什么?我的语法有什么问题?
【问题讨论】:
-
已经有一个函数可以很好地完成您的函数的目标:
sprintf("%03d.csv", id)。例如。如果你给它id=14,它会返回"014.csv"。 -
@Backlin 但是这里的 OP 正在阅读教程......也许他需要更多关于如何纠正语法错误的帮助......
-
是的,这就是我发表评论但没有回复的原因。就像提到 R 中有大量的小函数可以处理(请原谅我的用词)这样的琐碎任务。作为一个初学者,我编写了很多自己定制的小函数,但随着我的进步和发现“正确”的做事方式,我已经放弃了大部分。
标签: r if-statement syntax