R 如何编写基于不同过滤器创建glm模型并将其附加到原始数据帧的代码
我想运行一个代码,根据目标变量上的过滤器创建不同的glm模型,这样每个过滤器都会得到不同的模型对象和结果。过滤器只针对一个变量,我有14个过滤器要运行。 以下是我的示例数据和玩具代码:R 如何编写基于不同过滤器创建glm模型并将其附加到原始数据帧的代码,r,R,我想运行一个代码,根据目标变量上的过滤器创建不同的glm模型,这样每个过滤器都会得到不同的模型对象和结果。过滤器只针对一个变量,我有14个过滤器要运行。 以下是我的示例数据和玩具代码: dat1 <- read.table(text = " target wolfs snakes 3 1 7 3 0 4
dat1 <- read.table(text = " target wolfs snakes
3 1 7
3 0 4
1 0 8
1 1 3
1 0 3
6 1 2
6 0 1
6 1 5
5 0 7
3 0 7
4 1 7
1 0 3
7 1 3
6 0 1
6 0 9
6 1 1 ",header = TRUE)
我对代码编写还不熟悉,所以我创建了这个玩具代码,但它不能直观地工作。任何帮助都会很好
for (i in c(1:14,21,30)) function (x) { ifelse{dat$target==[[i]],
paste0("glm","[[i]]")<-glm(,data=dat, family=binomial(link='logit')
paste0("dat$","[[i]]") <-ifelse(predict(glm[[i]],newdata=data[which(dat$target==[[i]],),])>0.5,1,0)
}
函数(x){ifelse{dat$target==[[i]],
paste0(“glm”,“[[i]]”您的示例未运行,因此我无法验证它是否有效。您可以尝试此方法
for (i in c(0:14, 21, 30)) {
my.mdl <- glm(wolfs ~ snakes, data = dat1, subset = dat1$target == i)
dat1[dat1$target == i, paste("target", i, sep = "")] <- predict(my.mdl)
}
for(i在c(0:14,21,30))中){
my.mdl应该是17个新列:0..14,21,30.Hi Roman,我得到了这个错误:“glm.fit中的错误(x=numeric(0),y=integer(0),weights=NULL,start=NULL,:未找到对象‘fit’。另外:警告消息:1:在glm.fit中(x=numeric(0),y=integer(0),weights=NULL,start=NULL,:在迭代1中没有提供信息的观测值2:glm.fit:算法未收敛”如果您提供了一个可复制的示例,@mql4初学者,这将是最好的。当您尝试拟合与数据点数量相关的太多参数时,有时会出现收敛问题。是的@Roman Luštrik。感谢您指出,我知道收敛问题。我想您错过了dat1,编写了dat[…]在第三排的开头。谢谢你的帮助,它能工作。。
for (i in c(0:14, 21, 30)) {
my.mdl <- glm(wolfs ~ snakes, data = dat1, subset = dat1$target == i)
dat1[dat1$target == i, paste("target", i, sep = "")] <- predict(my.mdl)
}