bjmd
次のような(簡略化された)というデータセットがあります。
rte year y obs
22037 46001 1 0 1
22042 46001 2 4 3
22047 46001 3 5 3
22202 46002 1 11 1
22207 46002 2 14 1
22212 46002 3 6 1
22140 46003 1 5 6
22141 46003 2 2 6
22142 46003 3 6 6
ループを実行して、glm
各個別rte
(46001,46002、46003)の分析を実行したいと思います。それぞれrte
の中には複数のがあり、それらすべてを分析year
に含める必要があります。glm
各ルートのglm
テストから、勾配を取得し、ルートと勾配を列として持つ別のテーブルを作成しています。これは私がそれをどのように見せたいかです:
rte slope
46001 x
46002 y
46003 z
これが私が思いついたforループコードです:
route<-with(bjmd,unique(rte))
slope<-with(bjmd,numeric(length(unique(rte))))
table<-data.frame(route,slope)
for (i in unique(as.factor(bjmd$rte))) {
data<-subset(bjmd, rte=='i')
slope[i] <- coef(summary(glm(y ~ year+obs,
family = poisson(link=log),data=data)))[2,1]
table[i,2] <-paste(slope[i])
})
table
スロープの値を0にし続けるため、このコードに問題があります。
route slope
1 46001 0
2 46002 0
3 46003 0
誰かが私がそれを台無しにしている場所を指摘するのを手伝ってもらえますか?