R-Project if-else语法

R-Project if-else语法,r,if-statement,syntax,R,If Statement,Syntax,我正在完成一个教程,在语法方面遇到了困难。我看不出哪里出了问题,但我从控制台收到了错误消息 我有一个目录中300个csv文件的列表。用户将输入他们正在查找信息的文件的编号(id)。格式如下:001.csv、002.csv、090.csv 250.csv等 该函数用于将输入转换为csv文件名字符串。e、 g.如果id为5,则返回005.csv。如果输入为220,则输出为220.csv 代码如下: csvfile <- function(id) { if (id < 10) { pa

我正在完成一个教程,在语法方面遇到了困难。我看不出哪里出了问题,但我从控制台收到了错误消息

我有一个目录中300个csv文件的列表。用户将输入他们正在查找信息的文件的编号(id)。格式如下:001.csv、002.csv、090.csv 250.csv等

该函数用于将输入转换为csv文件名字符串。e、 g.如果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 csvfile}else粘贴0(id,.csv)
错误:“}”中出现意外“}”
> }
我可以看出R不喜欢我的一些“}”,但不知道为什么?我的语法有什么问题?

您缺少一些
字符,对于前两个
paste0
调用:

csvfile <- function(id) {
    if (id < 10) { 
        paste0(0,0,id,".csv")
    } else if (id < 100) {
        paste0(0,id,".csv")
    } else paste0(id,".csv")
}

csvfile一开始很难发现R中的语法错误。
Console很适合测试单行代码,但当您尝试编写更长的语句时,它并没有多大帮助


我的建议是使用IDE来帮助您编写函数。例如,为什么不试试呢?

已经有一个函数可以很好地完成函数的目标:
sprintf(“%03d.csv”,id)
。例如,如果你给它
id=14
它会返回
“014.csv”
@Backlin,但这里OP正在学习一个教程…也许他需要更多关于如何纠正语法错误的帮助..是的,这就是我为什么评论而不回复的原因。我想提到的是,R中有大量的小函数负责(恕我直言)像这样的琐碎任务。作为一个初学者,我写了很多我自己定制的小函数,但随着我的进步和“正确”的做事方式的改变,我放弃了大部分。谢谢!我不敢相信我忽略了这一点。我会检查的,干杯
csvfile <- function(id) {
    if (id < 10) { 
        paste0(0,0,id,".csv")
    } else if (id < 100) {
        paste0(0,id,".csv")
    } else paste0(id,".csv")
}