R - Предупреждающее сообщение: «In cor (…): стандартное отклонение равно нулю»

У меня есть один вектор потоковых данных (29 данных) и данные трехмерной матрицы (360 * 180 * 29)

я хочу найти корреляцию между одним вектором и трехмерным вектором. Корреляционная матрица будет иметь размер 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. Этот код работает отлично.

21
задан Josh O'Brien 3 February 2012 в 07:35
поделиться