如果loess方法返回错误,请使用glm方法

use*_*980 1 r ggplot2

df

Date      Ovserv  Team
1/1/2012  10      USA
1/2/2012  30      USA
1/3/2012  28      USA
1/4/2012  79      USA
1/5/2012  24      USA
1/1/2012  45      Japan
1/2/2012  10      Japan
1/3/2012  56      Japan
1/4/2012  60      Japan
1/5/2012  67      Japan
Run Code Online (Sandbox Code Playgroud)

我真的很喜欢黄土,喜欢随时使用它.我正在使用各种不同的数据框,我正在尝试使用黄土方法来绘制图形.但是,由于一些不一致(某些数据帧没有足够的数据点),我收到此错误:

Error in predLoess(object$y, object$x, newx, object$s, object$weights,
Run Code Online (Sandbox Code Playgroud)

是否有可能method="glm"在我使用ggplot2"黄土"方法得到错误的情况下使用?

ggplot(df, (Date, Observ, group=Team, colour=Team)) + 
   geom_smooth(method="loess", se=T, size=1)
Run Code Online (Sandbox Code Playgroud)

有什么想法我会如何解决这个问题?

Señ*_*r O 6

如果没有足够的黄土数据,该声明class(try(loess(y~x, df)))=="try-error"将给出TRUE.

你可以尝试一些方法

ggplot(....) + geom_smooth(method=ifelse(class(try(loess(y~x, df)))=="try-error",
                                          "glm","loess")....) 
Run Code Online (Sandbox Code Playgroud)

并添加silent=TRUE到try参数,如果你不希望看到的错误消息.