对于r中的循环,不能得到大于1的第一个值

时间:2012-12-09 01:04:58

标签: r for-loop

我正在尝试在r中编写for循环,循环遍历1970年开始的数据。我想循环这些年自己,这样我每年都会在数据中进行迭代并存储数据(投票股票,在职状态等)在向量中。 显然,由于我的数据始于1970年,我不想要多年的价值<然而,1970年,下面的剧本是在1-16的位置生成0的向量,在17-1969的位置生成NA,然后我认为是1970-2000年的预期统计数据和奇数年的NA。如何让它返回我想要的值(即使是1970-2000年?)以及1-16位的0值会发生什么?

incumb.data是具有投票份额,在职状态,按年份和州选举结果的数据框架。

\脚本:

J<-seq(1970, 2000,2)
inc.fx1<-vector(length=length(J))
year.df1<-vector(length=length(J))

for (j in 1970:J){
  state.hold<-incumb.data[StateNumb3==26,]
  yr.hold<-state.hold[state.hold$V6==j,]

  St28.df<-data.frame(year=yr.hold$V6, 
                      v_1=yr.hold$v_1, v_2=yr.hold$v_2,
                      I1=yr.hold$I1, I2=yr.hold$I2,
                      P2=yr.hold$P2)

  St28.lm<-lm(v_2~v_1+I2+P2, data=St28.df)
  inc.fx1[j]<-coef(St28.lm)[3]
  year.df1[j]<-St28.df$year
}

\ end script

所以我希望inc.fx1保持1970-2000年偶数年的计算统计量。谢谢你的帮助。

BG

1 个答案:

答案 0 :(得分:2)

J是一个向量,你可以直接迭代它。

替换它(应该发出警告):

for (j in 1970:J){   # ...

有了这个:

for (j in J){   # ...