使用formatC添加0&#s;以在ar中返回错误在R中返回错误

时间:2014-06-19 18:40:58

标签: r csv formatting

首先,这里是R的新手。

我有一个函数用于评估遍布许多表的列中的值。我在函数中有一个参数,允许用户输入他们想要从中绘制数据的表序列。该函数似乎工作正常,但当用户使用:运算符输入单个数字(超过9)而不是序列时,我发现错误消息:

此示例的输入为30

文件错误(文件,“rt”):无法打开连接

5个文件(文件,“rt”)

4 read.table(file = file,header = header,sep = sep,quote = quote,     dec = dec,fill = fill,comment.char = comment.char,...)

3 FUN(“specdata / 3e + 01.csv”[[1L]],...)

2 lapply(filepaths,read.csv)

1污染物(“specdata”,“硝酸盐”,30)

另外:警告信息:

在文件(文件,“rt”)中:   无法打开文件'specdata / 3e + 01.csv':没有这样的文件或目录

以下是我的代码:

pollutantmean <- function(directory, pollutant, id = 1:332){
filenames <- paste0(formatC(id, digits = 0, width = 3, flag = "0"), ".csv")
filepaths <- file.path(directory, filenames)
list_of_data_frames <- lapply(filepaths, read.csv)
big.df<-do.call(rbind,list_of_data_frames)
print(str(big.df))
mean(big.df[,pollutant], na.rm=TRUE)
}

你们许多人可能认为这是一个课程作业。它超出了截止日期,我已经为它提交了一些(相当不错的)代码。我只想对这里发生的事情有一个很好的理解,因为这类工作与我的研究直接相关。

1 个答案:

答案 0 :(得分:4)

您希望确保将值格式化为整数

formatC(id,digits=0, width=3, flag="0", format="d")

或者您可以使用

sprintf("%03d", id)
粘贴语句中的

。这两者都应该阻止科学记数法。