【问题标题】:Error message about the plot in regression model关于回归模型中的绘图的错误消息
【发布时间】:2020-02-01 09:49:51
【问题描述】:

我有一个用于回归的 R 程序,它以某种方式给了我一个我不理解的错误消息。回归模型将热量输入热量数据 (Q_htg) 和相应的温度数据 (T_amb) 作为输入,然后为这两个变量建立线性回归。之后我想使用经过训练的回归模型来预测一些输出。代码如下:

dalinearPowerScaling2.function <-
  function(Dataset,
           numberOfDaysForAggregation,
           normOutsideTemperature) {
    heatingPower <- Dataset$Q_htg
    outSideTemperature <- Dataset$T_amb
    aggregationLevel <- numberOfDaysForAggregation * 1440
    index <- 0
    meanValuesOutsideTemperature <-
      vector(, length(outSideTemperature) / aggregationLevel)
    for (i in seq(1, length(outSideTemperature), aggregationLevel)) {
      sum <- 0
      for (j in seq(i, i + aggregationLevel - 1, 1)) {
        sum <- sum + outSideTemperature[j]
      }
      index <- index + 1
      meanValuesOutsideTemperature[index] <- sum / aggregationLevel
    }
    index <- 0
    meanValuesHeatingDemand <-
      vector(, length(heatingPower) / aggregationLevel)
    for (i in seq(1, length(heatingPower), aggregationLevel)) {
      sum <- 0
      for (j in seq(i, i + aggregationLevel - 1, 1)) {
        sum <- sum + heatingPower[j]
      }
      index <- index + 1
      meanValuesHeatingDemand[index] <- sum / aggregationLevel
    }

    linearModel <-
      lm(meanValuesHeatingDemand ~ meanValuesOutsideTemperature)
    abline(linearModel, col = "red")

    pred <- predict(linearModel, data.frame(meanValuesOutsideTemperature = c(normOutsideTemperature)))
    List<-list(meanValuesHeatingDemand, meanValuesOutsideTemperature)
    List2 <- vector("list", length(heatingPower)/aggregationLevel)
    for (i in seq(1, length(meanValuesHeatingDemand),1)){
    List2 [[i]]<-c(meanValuesHeatingDemand[i], meanValuesOutsideTemperature[i])
      }

    List3<-List2[order(sapply(List2, function(x) x[1], simplify=TRUE), decreasing=FALSE)]

    firstTemperatureWithHeatingDemand<-0
    firstHeatingDemand<-0
    for (i in seq(1, length(List3), 1)) {
    if(List3[[i]][1]>0) {
      firstTemperatureWithHeatingDemand<-List3[[i]][2]
      firstHeatingDemand<-List3[[i]][1]
      break}
    }
    regression2ValuesX <- vector(, 5)
    regression2ValuesY <- vector(, 5)
    regression2ValuesX [1] <- firstTemperatureWithHeatingDemand
    regression2ValuesY [1] <-firstHeatingDemand
    List3<-List2[order(sapply(List2, function(x) x[1], simplify=TRUE), decreasing=TRUE)]
    for (i in seq(1, length(regression2ValuesX) - 1, 1)) {
      regression2ValuesX[i + 1]<-List3[[i]][2]
      regression2ValuesY[i + 1]<-List3[[i]][1]
      }

    plot(regression2ValuesX, regression2ValuesY)
    linearModel2 <-
      lm(regression2ValuesY ~ regression2ValuesX)
    abline(linearModel2, col = "blue")
    pred <- predict(linearModel2, data.frame(regression2ValuesX = c(normOutsideTemperature)))
    paste("Predicted heating demand:", round(pred))
  }

当我使用命令运行时

linearPowerScaling2.function(data_heat_test, 1, -12)

我收到错误消息:

 Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) : 
  plot.new has not been called yet 
3.
int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) 
2.
abline(linearModel, col = "red") at LinearPowerScaling2_Function.R#33
1.
linearPowerScaling2.function(data_heat_test, 1, -12) 

数据本身应该没问题。谁能告诉我,问题是什么?

【问题讨论】:

  • abline 调用之前尝试plot(meanValuesHeatingDemand ~ meanValuesOutsideTemperature) 以打开图形设备。

标签: r plot


【解决方案1】:

如果没有可重现的 minimal 示例,很难测试这是否解决了问题,但错误消息告诉您,您正在调用 abline() 在调用 plot() 之前

这正是第 33 行发生的事情......

希望这会有所帮助。

查看here 了解如何制作一个可重现的最小示例。

【讨论】:

  • 感谢您的回答达里奥。对我来说真的很奇怪的是,我剪切了第 33 行并将其粘贴到下面的某个位置,但即使第 33 行有相同的错误,我仍然收到相同的错误消息,尽管第 33 行中没有代码。我是否必须以某种方式更新函数文件(除了保存)?
  • 是的,你必须重新运行函数定义。最佳做法是不时重启 R 环境(或手动清空环境)。
  • 感谢达里奥的评论。 “重新运行函数定义”是什么意思?我在 R studio 中使用控制台,当我再次尝试通过命令“linearPowerScaling2.function(data_heat_test, 1, -12)”使用该功能时,我收到相同的错误消息
  • 通过“重新运行”函数定义我的意思是执行函数定义的代码,或者通过获取脚本,将代码复制/粘贴到控制台或(至少在 Ubuntu RStudio 中)选择代码并按 CTRL+ENTER。如果你在控制台中运行一个函数的名称(没有括号,即mean),R会告诉你它当前使用的是什么定义。
猜你喜欢
  • 2018-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-01
  • 2012-03-20
  • 2011-11-15
  • 1970-01-01
相关资源
最近更新 更多