从R

时间:2016-05-20 18:42:20

标签: r for-loop multidimensional-array

我有一个昏暗的4x1x4x71x128阵列。 第一个暗淡指的是4种不同的模型。 第三个暗淡指的是较低的CI,相关性,上CI和p值。

我需要的输出是一个新的暗淡1x1x1x71x128数组,其中第一个暗淡是指4个模型中的相关(第3个暗淡)的最大值(第1个暗淡)。

我尝试了以下内容:

newarray <- array(NA, c(1,1,1,71,128))
for (i in 1:4) {
  for (j in 1:nrow(array[1,1,1,,])) {
    for (k in 1:ncol(array[1,1,1,,])){
      newarray[i,1,1,j,k] <- max(array[i,1,1,j,k], na.rm = FALSE)
    }
  }
}

这会返回不是关联的最大值,而是返回较低的CI。但是,当我将操作更改为:

newarray[i,1,1,j,k] <- max(array[i,1,2,j,k], na.rm = FALSE)

它不起作用。我相信我没有正确的循环,但似乎无法弄明白。

先谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

x.max <- apply(x , c(3,4,5) , 
                   function(x) 
                     ifelse(all(is.na(x)), NA, max(x, na.rm = TRUE))) 

解决! 结果是暗淡的4x71x128,第一个暗淡的第二个元素是所需的输出。