我有一个3D阵列。
dim[Ad]
[1] 144 69 60
前两个维度代表一个网格框(144 * 69)。第三个维度代表了60种不同的气候模型输出集合。
我想创建一个循环,从第三维中提取第一个集合,并为每个后续集合应用函数等等。
答案 0 :(得分:1)
鉴于
( arr <- array(rep(c(1,2,3), each=4), dim=c(2,2,3)) )
# , , 1
#
# [,1] [,2]
# [1,] 1 1
# [2,] 1 1
#
# , , 2
#
# [,1] [,2]
# [1,] 2 2
# [2,] 2 2
#
# , , 3
#
# [,1] [,2]
# [1,] 3 3
# [2,] 3 3
你可以这样。
# sum values for ,,1 ,,2 & ,,3 each:
apply(arr, 3, sum)
# [1] 4 8 12
# or: show unique values for each:
apply(arr[,,2:3], 3, function(x) unique(as.vector(x)) )
# [1] 2 3