1

我正在尝试在 r 中编写一个 for 循环,该循环遍历我从 1970 年开始的数据。我想自己循环多年,这样我每年都会在数据中进行迭代并存储数据(投票份额,向量中的在职状态等)。显然,由于我的数据从 1970 年开始,我不希望值小于 1970 年,但是,下面的脚本在位置 1-16 中生成一个向量,在位置 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
}

\结束脚本

所以我希望 inc.fx1 保存偶数年 1970-2000 的计算统计数据。感谢您的帮助。

BG

4

1 回答 1

2

J 是一个向量,您可以直接对其进行迭代。

替换这个(应该给出警告):

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

有了这个:

for (j in J){   # ...
于 2012-12-09T01:17:32.513 回答