У меня есть два набора данных A и B, и я хочу найти корреляцию и построить карту контура.R - Всемирная карта контура с корреляцией между двумя наборами данных
A - это простой вектор с данными потока потока 230.
B - это сложная информация о температуре морской поверхности (SST) в соответствии с датой серии. На каждой дате SST имеет матрицу 360 * 180 столбцов зарегистрированных температур.
Вектор А (230 данных) составляет:
Houlgrave_flow_1981_2000 = window(Houlgrave_flow_average, start = as.Date("1981-11-15"),end = as.Date("2000-12-15"))
Houlgrave_SF_1981_2000 = coredata(Houlgrave_flow_1981_2000)
размерность матрицы B показано ниже, и я только использовать от 1 до 230.
> dim(ssta_sst)
[1] 360 180 362
Моя идея для нахождения корреляции ниже.
z_correlation = cor(Houlgrave_SF_SST_1981_2000,ssta_sst[c(181:360, 1:180),,i])
Попробуйте, i = 1. Однако, это не work.The сообщение об ошибке говорит:
"Error in cor(Houlgrave_SF_SST_1981_2000, ssta_sst[c(181:360, 1:180), , :
incompatible dimensions.".
Кроме того, это мой контурная карта код,
require(maps)
par(ask=TRUE)
for (i in 1:230) {
maps::map(database="world", fill=TRUE, col="light blue")
maps::map.axes()
contour(x=lon_sst, y=lat_sst, z=cor(Houlgrave_SF_1981_2000,ssta_sst[c(181:360, 1:180),,i]), zlim=c(-3,3), add=TRUE)
title(paste("Year: ", year_sst[i], ", Month: ", month_sst[i]))
}
Я думаю, что я просто нужно изменить г при контурной кода. Нужно ли переопределять данные каждого А в виде матрицы данных 360 * 180?
Я пробовал ваш метод, но он не работает. для моих данных потока это уже формат зоопарка, который содержит вектор даты. Я пробовал другой метод, но с циклом, он содержит небольшую ошибку. Я бы хотел, чтобы ты помог мне. он находится на «http://stackoverflow.com/questions/9057449/r-lopp-in-matrix». Спасибо. –