首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何恢复r中列表元素的类型?

如何恢复r中列表元素的类型?
EN

Stack Overflow用户
提问于 2018-09-05 05:32:40
回答 1查看 98关注 0票数 0

下面的代码抱怨:

UseMethod中的错误(“预测”):没有适用于类“列表”对象的“预测”方法

是否有任何方法将列表元素转换回正确的类型?

编辑:多亏了@李哲源,下面的代码起作用了:

代码语言:javascript
复制
models <- list(m, logit, loglog)
plot(x,y)
abline(models[[1]],col="black",lty=2)
lines(x,predict(models[[2]], df),col="red",lty=3)

原始代码:

代码语言:javascript
复制
if(!require(betareg)){install.packages("betareg")}
set.seed(123)
x=seq(1,9,1)
print(x)
y=x/10+0+rnorm(length(x),0,.1)
print(y)
m=lm(y~x)
logit<-betareg(y~x,na.action=na.omit)
plot(x,y)
abline(m,col="red",lty=2)
#lines(x,predict(logit, y),col="green",lty=3)
models=c(m,logit)
abline(models[1],col="blue",lty=4)
lines(x,predict(models[2], y),col="blue",lty=5)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-05 05:41:42

回归模型存储为带有特殊“类”的“列表”。使用c的直接级联会删除这类“类”。检查length(models):您有41而不是2。

使用下列任一项

代码语言:javascript
复制
models <- c(list(m), list(logit))
models <- list(m, logit)

保留回归模型的“类”,并使用models[[1]]models[[2]]访问这些模型(例如,abline(models[[1]])predict(models[[2]], y))。

或者,事先建立一个合适的列表并填写(如果您在循环中存储模型,这是有用的)。

代码语言:javascript
复制
models <- vector("list", 2)
models[[1]] <- m
models[[2]] <- logit
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52177699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档