如何解决R Plotly:在子集上添加黄土线
我正在尝试使用plotly将整个数据框的一条黄土线(或线性空气模型)拟合到该数据框的子集上。
model_LV2F<- loess(p_LV2F ~schoolweging,data = df)
plot_ly(df_subset) %>%
add_markers(x=~schoolweging,y=~p_LV2F,marker=list(color="red",opacity=3/10),name="2F") %>%
add_lines(x=~schoolweging,y=~model_LV2F$fitted,line=list(color="red"))
我收到错误消息“标题栏必须具有兼容的大小。”,因为该模型基于6000个观测值,而子集数据框仅包含23个观测值。
如何从另一个数据框中添加预先计算的参考线?
解决方法
我很确定这不是大多数R解决方案,但我设法完成了它。 我编写了一个函数来提取拟合线的所有x和y对,并仅保留唯一值。 之后,我可以将这些值加入我的子集数据框中。
loess_ref <- function(...) {
mdl <- loess(...)
x <- mdl$x[,]
y <- mdl$fitted
mdl_df <- data.frame(x,y) %>% drop_na() %>% unique()
}
loess_LV2F <- loess_ref(p_LV2F ~ schoolweging,data = df)
df_subset %>%
left_join(loess_LV2F,by = c("schoolweging" = "x")) %>%
plot_ly() %>%
add_markers(
x = ~ schoolweging,y = ~ p_LV2F,marker = list(color = "red",opacity = 3 / 10),name = "2F"
) %>%
add_lines(
x = ~ schoolweging,y = ~ model_LV2F$fitted,line = list(color = "red")
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。