R 和 Excel 中的相同公式结果不同?

R 和 Excel 中的相同公式结果不同?

我使用此公式计算了 R 中全年特定日期的 3 个水质参数的负荷。

在此处输入图片描述

我使用前面的公式计算了 7 种情景。每种情景代表全年的一周中的 1 天(每周的星期一、每周的星期二……)。

使用1年数据集(数据集和 Excel 计算可以从以下网址下载这里),我使用了 R 中的 (tapply) 函数,根据前面的公式计算负载

FWNH4Week=tapply( 1:length( NH4 ), as.factor( Weekday ), function( x ) ((sum(Flow[x]*NH4[x])/sum(Flow[x]))*sum(Flow)))

我已经计算了同样的公式擅长之前。通过比较我从擅长和 R 一样,其中 2 天相似,其余几天不同。如果您能检查 R 函数和 excel 计算并帮助我弄清楚为什么使用相同公式会得到不同的结果,我将不胜感激。

提前致谢

答案1

我真的不知道你为什么要这么做,因为公式是针对年度负荷的。为什么会有一个恰好适合工作日的周循环?但如果你无论如何都想这样做(也许在工业废水环境中?),我会这样做:

weekday <- rep(1:7, 25)
set.seed(007)
Flow <- cumsum(rnorm(25*7)) + 20
NH4 <- Flow + rnorm(25*7)
plot(Flow, type="l")
lines(NH4, col=2)
# anual sum:
sum(Flow)*  sum(Flow*NH4) / sum(Flow) # 228 660
# per weekday
sapply( unique(weekday), function(i)
  {
  wd <- which(weekday==i)
  sum(Flow[wd])*  sum(Flow[wd]*NH4[wd]) / sum(Flow[wd])
  } )
# each ca 32 000 , a seventh of annual load

问候,Berry

相关内容