作者ss12356tw (ss12356tw)
看板R_Language
标题[问题] 如何使用回圈跑变数命名
时间Thu Mar 29 17:10:11 2018
[问题类型]:
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
[软体熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
正在用logistic regression的function
但因为模型要重复跑9次
不知道该如何使用回圈处理变数命名的部分让程式码缩短
谢谢大家
[程式范例]:
ml_1=glm(group[,1]~.,data=data,family = "binomial")
p_1=predict.glm(ml_1,newdata=pendigits.tst[,-17], type="response")
ml_2=glm(group[,2]~.,data=data,family = "binomial")
p_2=predict.glm(ml_2,newdata=pendigits.tst[,-17], type="response")
ml_3=glm(group[,3]~.,data=data,family = "binomial")
p_3=predict.glm(ml_3, newdata=pendigits.tst[,-17],type="response")
ml_4=glm(group[,4]~.,data=data,family = "binomial")
p_4=predict.glm(ml_4,newdata=pendigits.tst[,-17], type="response")
ml_5=glm(group[,5]~.,data=data,family = "binomial")
p_5=predict.glm(ml_5,newdata=pendigits.tst[,-17], type="response")
ml_6=glm(group[,6]~.,data=data,family = "binomial")
p_6=predict.glm(ml_6,newdata=pendigits.tst[,-17], type="response")
ml_7=glm(group[,7]~.,data=data,family = "binomial")
p_7=predict.glm(ml_7, newdata=pendigits.tst[,-17],type="response")
ml_8=glm(group[,8]~.,data=data,family = "binomial")
p_8=predict.glm(ml_8,newdata=pendigits.tst[,-17], type="response")
ml_9=glm(group[,9]~.,data=data,family = "binomial")
p_9=predict.glm(ml_9,newdata=pendigits.tst[,-17], type="response")
我将ml_1~9改成i
发现没办法处理命名的部分
想请问该如何修正
谢谢
for(i in 1:9){
ml_
i=glm(group[,i]~.,data=data,family = "binomial")
p_
i=predict.glm(ml_
i,newdata=pendigits.tst[,-17], type="response")
}
跑出的错误:
Error in as.data.frame.default(data, optional = TRUE) :
cannot coerce class ""function"" to a data.frame
[环境叙述]:
3.4.3
[关键字]:
变数命名回圈
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 39.10.143.249
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1522314614.A.2A7.html
1F:→ clansoda: 不建议这样做,把九个结果弄成list会比较好 03/29 17:30
2F:→ ss12356tw: 谢谢 03/29 20:18
3F:推 HumuHumu: assign+paste可以 03/30 11:21