这不是关于曲线拟合的问题。相反,我所拥有的是60个不同地点的集合,我可以从这些地点收集最高,最低和平均温度。我需要能够使用此数据来计算光伏电池的工作温度;但是,对于平均温度,这样做是没有意义的,因为它包括日落之后的值。相反,我首先创建一个“伪”平均温度(这是我们的“伪平均”,totalityoftemperatures_fakemeans
),它是最高和最低温度的平均值。在这一点上,我通过减去一个标准偏差(假设6 * sd = max-min)来计算调整后的最低温度,然后最终计算出“调整后”的平均温度,该平均温度是新的最低温度的平均值(假均值-1 * sd)和预先存在的最高温度(因此这是我们的“调整后平均值”)。
真正困扰我的是,这个重新计算的平均值应该高于“假”的平均值;毕竟,它是调整后的最小值与原始最大值的平均值。我也可以将其交叉发布到统计堆栈交换之类的东西,但是我很确定这是当前的编码问题。有没有人可以看一下R中的以下代码?
#The first data sets of maxima and minima are taken from empirical data
for(i in 1:nrow(totalityofsites))
{
for(j in 1:12)
{
totalityoftemperatures_fakemeans[i,j] = mean(totalityoftemperatures_maxima[i,j], totalityoftemperatures_minima[i,j])
}
}
totality_onesigmaDF = abs((1/6)*(totalityoftemperatures_maxima - totalityoftemperatures_minima))
totalityoftemperatures_adjustedminima = totalityoftemperatures_fakemeans - totality_onesigmaDF
for(i in 1:nrow(totalityofsites))
{
for(j in 1:12)
{
totalityoftemperatures_adjustedmeans[i,j] = mean(totalityoftemperatures_adjustedminima[i,j], totalityoftemperatures_maxima[i,j])
}
}
#The second calculation of the average should be higher than "fake" but that is not the case
答案 0 :(得分:0)
我认为您的问题出在使用mean
函数上。当您这样做时:
mean(totalityoftemperatures_adjustedminima[i,j], totalityoftemperatures_maxima[i,j])
您正在用两个参数调用均值。该函数仅接受一个参数,即数字的向量。如果提供两个数字,它将忽略第二个数字。看:
mean(2, 100)
#[1] 2
如果将这些值连接到一个向量中,则会得到正确的答案:
mean(c(2, 100))
#[1] 51
所以您需要更改
mean(totalityoftemperatures_maxima[i,j], totalityoftemperatures_minima[i,j])
到
mean(c(totalityoftemperatures_maxima[i,j], totalityoftemperatures_minima[i,j]))
和
mean(totalityoftemperatures_adjustedminima[i,j], totalityoftemperatures_maxima[i,j])
到
mean(c(totalityoftemperatures_adjustedminima[i,j], totalityoftemperatures_maxima[i,j]))