首页 文章

使用formatC将0添加到arg中的序列,返回R中的错误

提问于
浏览
1

首先,这里是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 回答

  • 3

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

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

    或者你可以使用

    sprintf("%03d", id)
    

    在粘贴语句中 . 这两者都应该阻止科学记数法 .

相关问题