【发布时间】:2026-01-17 18:35:01
【问题描述】:
我有一个流数据向量(29 个数据)和一个 3D 矩阵数据(360*180*29)
我想找到单个向量和 3D 向量之间的相关性。相关矩阵的大小为 360*180。
> str(ScottsCk_flow_1981_2010_JJA)
num [1:29] 0.151 0.644 0.996 0.658 1.702 ...
> str(ssta_winter)
num [1:360, 1:180, 1:29] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ...
> summary(ssta_winter)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
-2.8 -0.2 0.1 0.2 0.6 6.0 596849.0
以上是向量和3D矩阵的结构。 3D 矩阵有很多值为 Null。
> for (i in 1:360) {
+ for(j in 1:180){
+ cor_ScottsCk_SF_SST_JJA[i,j] = cor(ScottsCk_flow_1981_2010_JJA,ssta_winter[i,j,])
+ }
+ }
There were 50 or more warnings (use warnings() to see the first 50)
上面这部分代码是查找相关性的代码。但它给出了警告
> warnings()
Warning messages:
1: In cor(ScottsCk_flow_1981_2010_JJA, ssta_winter[i, j, ... :
the standard deviation is zero
2: In cor(ScottsCk_flow_1981_2010_JJA, ssta_winter[i, j, ... :
the standard deviation is zero
3: In cor(ScottsCk_flow_1981_2010_JJA, ssta_winter[i, j, ... :
the standard deviation is zero
4: In cor(ScottsCk_flow_1981_2010_JJA, ssta_winter[i, j, ... :
the standard deviation is zero
5: In cor(ScottsCk_flow_1981_2010_JJA, ssta_winter[i, j, ... :
the standard deviation is zero
另外,相关矩阵的结果都是NULL。这是怎么发生的?
> str(cor_ScottsCk_SF_SST_JJA)
num [1:360, 1:180] NA NA NA NA NA NA NA NA NA NA ...
我使用了完全相同的代码 bfr,带有 350 个流向量和 360*180*350 矩阵。 此代码完美运行。
【问题讨论】:
-
for循环,所有循环计数器都没有硬编码,这里的硬编码只是为了简化问题。
标签: r multidimensional-array matrix warnings correlation