我正在尝试从调查数据集中找出对地方政府的信心百分比。该数据集是2001年至2018年的时间序列数据,捕获了Target变量的响应,分别为“相当数量”,“很多”,“完全没有”和“不是很多”。 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行状态。