[問題] 如何使用迴圈跑變數命名

作者: ss12356tw (ss12356tw)   2018-03-29 17:10:11
[問題類型]:
程式諮詢(我想用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
[關鍵字]:
變數命名迴圈
作者: clansoda (小笨)   2018-03-29 17:30:00
不建議這樣做,把九個結果弄成list會比較好
作者: ss12356tw (ss12356tw)   2018-03-29 20:18:00
謝謝
作者: HumuHumu (呼姆呼姆)   2018-03-30 11:21:00
assign+paste可以

Links booklink

Contact Us: admin [ a t ] ucptt.com