0
我有一個名爲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
我想運行一個循環來爲每個不同的rte
(46001,46002,46003)進行glm
分析。在每個rte
內,有多個year
s,它們全都需要包含在glm
分析中。從每條路線的glm
測試中,我將採用坡度並創建另一個路線和坡度作爲列的表格。這是我希望它看起來像:
rte slope
46001 x
46002 y
46003 z
下面是循環代碼我想出了:因爲我一直得到0值我斜率
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
東西是不對的代碼:
route slope
1 46001 0
2 46002 0
3 46003 0
有人可以幫指出哪裏我搞亂它呢?
您需要從'data <-subset(bjmd,rte =='i')''周圍移除'i'的引號。目前,您正在對與字符串「i」相等的值進行子集化。 – Thomas 2013-07-06 14:42:49