R 试图将数据强制到高斯曲线上,结果与预期不符

R 试图将数据强制到高斯曲线上,结果与预期不符,r,statistics,R,Statistics,这不是关于曲线拟合的问题。取而代之的是,我收集了60个不同的站点,从中我可以收集最高、最低和平均温度。我需要能够使用这些数据来计算光伏电池的工作温度;然而,对于平均温度来说,这样做是没有意义的,因为它包含了日落后的温度值。相反,我首先创建一个“假”平均温度(这是我们的“假平均值”,totalityoftemperatures\u fakemeans),它是最高和最低温度的平均值。在这一点上,我通过减去一个标准偏差(假设6*sd=max-min)来计算一个调整后的最低温度,然后最后计算一个“调整后

这不是关于曲线拟合的问题。取而代之的是,我收集了60个不同的站点,从中我可以收集最高、最低和平均温度。我需要能够使用这些数据来计算光伏电池的工作温度;然而,对于平均温度来说,这样做是没有意义的,因为它包含了日落后的温度值。相反,我首先创建一个“假”平均温度(这是我们的“假平均值”,
totalityoftemperatures\u 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

我认为你的问题在于你对
mean
函数的使用。执行此操作时:

平均值(总温度调整最小值[i,j],总温度最大值[i,j])
你在用两个参数调用mean。该函数只接受一个参数,即数字向量。如果您提供两个数字,它将忽略第二个数字。看:

mean(2, 100)
#[1] 2
然而,如果将这些值连接到一个向量中,则可以得到正确的答案:

平均值(c(2100))
#[1] 51
所以你需要改变

平均值(总温度\最大值[i,j],总温度\最小值[i,j])


我认为你的问题在于你对
mean
函数的使用。执行此操作时:

平均值(总温度调整最小值[i,j],总温度最大值[i,j])
你在用两个参数调用mean。该函数只接受一个参数,即数字向量。如果您提供两个数字,它将忽略第二个数字。看:

mean(2, 100)
#[1] 2
然而,如果将这些值连接到一个向量中,则可以得到正确的答案:

平均值(c(2100))
#[1] 51
所以你需要改变

平均值(总温度\最大值[i,j],总温度\最小值[i,j])


好的,谢谢。我真的应该知道这一点。尴尬与感激同等重要!好的,谢谢。我真的应该知道这一点。尴尬与感激同等重要!
mean(totalityoftemperatures_adjustedminima[i,j], totalityoftemperatures_maxima[i,j])
mean(c(totalityoftemperatures_adjustedminima[i,j], totalityoftemperatures_maxima[i,j]))