如何编写一个读取多个csv
文件的函数,其中许多文件以00开头,例如001.csv
,002.csv
,003.csv
等等。
我的代码是:
getmonitor <- function(id, directory, summarize = FALSE) {
filename <- list.files(pattern="specdata/.csv")
data <- read.csv( paste(directory,"/",id,".csv",sep="") )
return (data)
}
如果输入:
,则有效getmonitor(100, "specdata")
但如果我输入:
getmonitor(001, "specdata")
它将返回:
Error in file(file, "rt") : cannot open the connection
另外:警告信息:
In file(file, "rt") :
cannot open file 'specdata/1.csv': No such file or directory
如何让我的函数读取以csv
开头的00
个文件?
答案 0 :(得分:3)
您可以使用sprintf
格式化这样的数字:
> sprintf('%03d',12)
[1] "012"
答案 1 :(得分:0)
您可以使用sprintf作为@Andrey Shabalin建议或作为替代方案,您可以像这样使用formatC:
id <-1
formatC(id, width=4, flag="0")
[1] "0001"
在您的功能中,您必须在读入文件之前放置此行:
id <- formatC(id, width=4, flag="0")
希望这有帮助。