首页 > 解决方案 > 嵌套循环输出错误:下标越界

问题描述

我试图从调查数据集中找出对地方政府的信心百分比。该数据集是从 2001 年到 2018 年的时间序列数据,捕获目标变量的响应为“相当数量”、“很多”、“一点也不”和“不是很多”。Year 的时间序列分析已使用循环来确定百分比置信度,但我面临着使用嵌套循环以状态方式分离它的问题,并且错误“下标越界”即将到来。

我使用相同的代码仅从 2001 年到 2018 年运行一年,并且运行良好。谁能帮助我如何使用聚合函数来解决这个问题?

data<-read.csv("maindata.csv")
state<-unique(data$Respondent.state.of.residence)
Year<-seq(2001,2018,1)
output<-matrix(ncol=18,nrow = 51)


for(i in state[1]:state[51]){
  A<-subset(data,data$Respondent.state.of.residence==state[i])
for(j in Year[1]:Year[18]){
 B<-subset(A,A$Year.of.Interview==j) 
 C<-subset(B,B$Trust.and.Confidence.in.Local.Government=="A fair amount")
 D<-subset(B,B$Trust.and.Confidence.in.Local.Government=="A great deal")
 output[j,]<-(nrow(D)*mean(D$Weight)+nrow(C)*mean(C$Weight))/nrow(B)*100

}
}

输出应该有一个 18 列的矩阵,指定年份和 51 行状态。

标签: r

解决方案


推荐阅读