使用formatC向arg中的序列添加0在R中返回错误

使用formatC向arg中的序列添加0在R中返回错误,r,csv,formatting,R,Csv,Formatting,首先,这里对R来说真的很陌生 我有一个函数,用于计算分布在多个表中的列中的值。我在函数中有一个参数,允许用户输入他们想要从中提取数据的表序列。该函数似乎工作正常,但当用户使用:运算符输入大于9的单个数字而不是序列时,我发现一条错误消息: 本例的输入为30 文件文件中出错,rt:无法打开连接 5文件文件,rt 4 read.tablefile=file,header=header,sep=sep,quote=quote, dec=dec,fill=fill,comment.char=comment

首先,这里对R来说真的很陌生

我有一个函数,用于计算分布在多个表中的列中的值。我在函数中有一个参数,允许用户输入他们想要从中提取数据的表序列。该函数似乎工作正常,但当用户使用:运算符输入大于9的单个数字而不是序列时,我发现一条错误消息:

本例的输入为30 文件文件中出错,rt:无法打开连接

5文件文件,rt

4 read.tablefile=file,header=header,sep=sep,quote=quote, dec=dec,fill=fill,comment.char=comment.char

3 FUNspecdata/3e+01.csv[[1L]]

2个lapplyfilepath,read.csv

1污染物平均含量数据,硝酸盐,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)
}

你们中的许多人可能认识到这是一项coursera作业。它已经超过了截止日期,我已经提交了一些不太好的代码。我只是想对这里发生的事情有一个很好的了解,因为这类工作与我的研究直接相关。

你想确保你的值也格式化为整数吗

formatC(id,digits=0, width=3, flag="0", format="d")
或者你可以用

sprintf("%03d", id)

在粘贴语句中。这两种方法都应该防止使用科学记数法。

您要确保将值格式化为整数

formatC(id,digits=0, width=3, flag="0", format="d")
或者你可以用

sprintf("%03d", id)

在粘贴语句中。这两种方法都应该防止使用科学符号。

我认为这是在输入不是序列时将输入转换为科学符号。这将是一个令人头痛的问题,因为输入被用于索引表格。我认为这是在输入不是序列时将输入转换为科学符号。这将是一个令人头痛的问题,因为输入被用于索引表格。除了上面的选项,SCIPEN=999禁止使用科学符号FORMAT=d也有效。我将在工具箱中保留选项SCIPEN=999以备将来使用$$$$除上述选项外,SCIPEN=999可禁止使用科学符号FORMAT=d。我将在工具箱中保留选项SCIPEN=999以备将来使用$$$$