Arrays 矩阵中的R-环
我有两个变量,第一个是包含230个数据的一维流动矢量,第二个是二维温度矩阵(230*44219) 我试图找到每个流量值和相应的44219温度之间的相关矩阵。下面是我的代码Arrays 矩阵中的R-环,arrays,r,loops,matrix,zoo,Arrays,R,Loops,Matrix,Zoo,我有两个变量,第一个是包含230个数据的一维流动矢量,第二个是二维温度矩阵(230*44219) 我试图找到每个流量值和相应的44219温度之间的相关矩阵。下面是我的代码 Houlgrave_flow_1981_2000 = window(Houlgrave_flow_average, start = as.Date("1981-11-15"),end = as.Date("2000-12-15")) > str(Houlgrave_flow_1981_2000) ‘zoo’ seri
Houlgrave_flow_1981_2000 = window(Houlgrave_flow_average, start = as.Date("1981-11-15"),end = as.Date("2000-12-15"))
> str(Houlgrave_flow_1981_2000)
‘zoo’ series from 1981-11-15 to 2000-12-15
Data: num [1:230] 0.085689 0.021437 0.000705 0 0.006969 ...
Index: Date[1:230], format: "1981-11-15" "1981-12-15" "1982-01-15" "1982-02-15" ...
Hulgrave_SST_1981_2000=X_sst[1:230,]
> str(Hulgrave_SST_1981_2000)
num [1:230, 1:44219] -0.0733 0.432 0.2783 -0.1989 0.1028 ...
sf_Houlgrave_SF_SST = NULL
sst_Houlgrave_SF_SST = NULL
cor_Houlgrave_SF_SST = NULL
for (i in 1:230) {
for(j in 1:44219){
sf_Houlgrave_SF_SST[i] = Houlgrave_flow_1981_2000[i]
sst_Houlgrave_SF_SST[i,j] = Hulgrave_SST_1981_2000[i,j]
cor_Houlgrave_SF_SST[i,j] = cor(sf_Houlgrave_SF_SST[i],Hulgrave_SST_1981_2000[i,j])
}
}
错误消息总是说:
Error in sst_Houlgrave_SF_SST[i, j] = Hulgrave_SST_1981_2000[i, j] :
incorrect number of subscripts on matrix
谢谢您的帮助。试试这个:
# prepare empty matrix of correct size
cor_Houlgrave_SF_SST <- matrix(nrow=dim(Hulgrave_SST_1981_2000)[1],
ncol=dim(Hulgrave_SST_1981_2000)[2])
# Good practice to not specify "230" or "44219" directly, instead
for (i in 1:dim(Hulgrave_SST_1981_2000)[1]) {
for(j in 1:dim(Hulgrave_SST_1981_2000)[2]){
cor_Houlgrave_SF_SST[i,j] <- cor(sf_Houlgrave_SF_SST[i],Hulgrave_SST_1981_2000[i,j])
}
}
#准备大小正确的空矩阵
CORYHouLGraveSffsSt也是一个很好的做法,不使用<代码>:运算符:考虑如果你在一个零行或列的矩阵中传递会发生什么。相反,请使用seq_len(nrow(*)
和seq_len(ncol(*)
。谢谢您的帮助。代码仍在加载3分钟,我希望会有任何麻烦。