神秘的第一价值无处不在

时间:2019-05-21 12:30:22

标签: r for-loop

运行简单的代码以同时读取多个文件,并提取数据并收集数据。提取的第一个值是错误的(0),我已经手动检查了数据,要提取的第一个数据点将是7.21(第二个值),我似乎无法弄清楚第一个值是从哪里生成的。 >

我尝试手动进行操作,但是我的代码似乎有问题。

pollutantmean <- function(directory, pollutant, id = 1:332){
results <- vector('numeric', 1)
for (i in id){
if(i < 10){
path <- paste(directory, '/00', i, '.csv', sep = '')
data <- read.csv(path)
mn <- na.omit(data[[pollutant]])
results<- c(results, mn)
}

当我插入前两个参数和1:10(表示前十个文件)时,我得到11个结果。

[1] 0.0000 7.2100 5.9900 4.6800 3.4700 2.4200 1.4300 2.7600 3.4100 1.3000 3.1500

第一个值是意外的,我不知道它从哪里来。它使我卑鄙。 有人可以帮忙吗?谢谢

1 个答案:

答案 0 :(得分:2)

在函数中,您首先初始化向量结果:

results <- vector('numeric', 1)

这将创建一个长度为1且向量为0的向量:

results
# [1] 0

现在,在读取数据和将结果for附加到nm向量的所有内容后,进入results循环。为了可视化,我将结果设置为每个步骤的ID。

for (i in 1:10){
  mn <- i
  results <- c(results, mn)
}

因此,在循环的每个步骤中,我们都会在向量结果中添加一个条目,该条目的初始长度为1。

results
# [1]  0  1  2  3  4  5  6  7  8  9 10