首页 > 解决方案 > Knit 文档导致 seq.int 出错

问题描述

编织我的文档时,以下代码会停止编织并导致错误。值得注意的是,在正常操作中,此代码通过显示所需的图形来工作。仅在编织文档时会出现此问题。

我试图插入 echo=false 希望只是绕过问题,但最终得到相同的错误消息。

编码:

qplot(wt, mpg, data=mtcars, colour=factor(am)) +
  geom_smooth(aes(ymin = lcl, ymax = ucl), data=grid, stat="identity") +
  ggtitle("MPG, Weight, & Transmission Relationship")

错误:

Quitting from lines 131-134 (MotorTrend.Rmd) 
Error in seq.int(U[1L], U[2L], length.out = nx + 1) : 
  'length.out' must be a non-negative number
Calls: <Anonymous> ... lapply -> FUN -> <Anonymous> -> f -> <Anonymous> -> f

Execution halted

标签: rggplot2rstudior-markdownknitr

解决方案


我必须更好地定义我的术语,所以我添加了额外的代码:

model <- lm(mpg ~ wt + factor(am) + wt*factor(am), data=mtcars)
grid <- with(mtcars, expand.grid(
  wt = seq(min(wt), max(wt), length = 20),
  am = levels(factor(am))))
grid$mpg <- stats::predict(model, newdata=grid)

err <- stats::predict(model, newdata=grid, se = TRUE)
grid$ucl <- err$fit + 1.96 * err$se.fit
grid$lcl <- err$fit - 1.96 * err$se.fit
qplot(wt, mpg, data=mtcars, colour=factor(am)) +
  geom_smooth(aes(ymin = lcl, ymax = ucl), data=grid, stat="identity") +
  ggtitle("MPG, Weight, & Transmission Relationship")

推荐阅读