首先,这里是R的新手。
我有一个函数用于评估遍布许多表的列中的值。我在函数中有一个参数,允许用户输入他们想要从中绘制数据的表序列。该函数似乎工作正常,但当用户使用:运算符输入单个数字(超过9)而不是序列时,我发现错误消息:
文件错误(文件,“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)
}
你们许多人可能认为这是一个课程作业。它超出了截止日期,我已经为它提交了一些(相当不错的)代码。我只想对这里发生的事情有一个很好的理解,因为这类工作与我的研究直接相关。
答案 0 :(得分:4)
您希望确保将值格式化为整数
formatC(id,digits=0, width=3, flag="0", format="d")
或者您可以使用
sprintf("%03d", id)
粘贴语句中的。这两者都应该阻止科学记数法。