【问题标题】:R - World Contour Map with Correlation between two data setsR - 具有两个数据集之间相关性的世界等高线图
【发布时间】:2012-01-27 05:39:31
【问题描述】:

我有两个数据集 A 和 B,我想找到相关性并绘制等高线图。

A 只是一个包含 230 个流数据的简单向量。

B是一系列日期下的复杂海表温度(SST)数据。在每个日期,SST 都有一个由 360 行 *180 列记录的温度组成的矩阵。

向量A(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。但是,它不起作用。错误消息说:

"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]))
}

我想我只需要在轮廓代码下修改 z。是否需要将每个A的数据重新定义为360*180的数据矩阵?

【问题讨论】:

    标签: r matrix correlation contour world-map


    【解决方案1】:

    如果我正确理解了这个问题,你有一个时间序列,即一个向量,其索引可以解释为时间,以及一个 3 维数组,其索引可以解释为时间和位置。

    # Sample data
    n <- 230
    m <- 100
    dates <- seq.Date( from=Sys.Date(), length=n, by="day" )
    flow <- rnorm(n)
    names(flow) <- as.character(dates)
    temperatures <- array( rlnorm(n*m*m), dim=c(n,m,m) )
    dimnames( temperatures ) <- list(
      time = as.character( dates ),
      longitude = NULL,
      latitude = NULL
    )
    

    对于每个职位,您可以使用 apply 计算您的“流量”时间序列和该职位的“温度”时间序列(u,在下面的代码中)之间的相关性。

    correlations <- apply( 
      temperatures, 
      2:3, 
      function (u) cor(u, flow) 
    )
    image(correlations)
    

    【讨论】:

    • 我试过你的方法,但是不行。对于我的流数据,它已经是包含日期向量的动物园格式。我尝试了不同的方法,但是使用循环,它包含一个小错误。我希望你能帮帮我。它在“stackoverflow.com/questions/9057449/r-lopp-in-matrix”上。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多