假设我有一个这样的数组:
d=5; N=2
V <- V1 <- array(dim = c(d, d, N))
U <- matrix(runif(N * d), ncol = d)
for (i in 1:d) {
V[i, i, ] <- U[, i]
}
V[1, 1, ] <- V1[1, 1, ]
这将生成以下数组:
, , 1
[,1] [,2] [,3] [,4] [,5]
[1,] 0.6968945 NA NA NA NA
[2,] NA NA NA NA NA
[3,] NA NA NA NA NA
[4,] NA NA NA NA NA
[5,] NA NA NA NA NA
, , 2
[,1] [,2] [,3] [,4] [,5]
[1,] 0.5170486 NA NA NA NA
[2,] NA NA NA NA NA
[3,] NA NA NA NA NA
[4,] NA NA NA NA NA
[5,] NA NA NA NA NA
我想根据每个数组中每个位置的值使用if
条件。例如,
w1 <- c(0,0.8,0.9,0.9,0.9,
0,0,0.8,0.9,0.9,
0,0,0,0.9,0.9,
0,0,0,0,0.7,
0,0,0,0,0)
w1 <- matrix(w1,5,5)
for(i in 1:d) {
if(V[i, i, ] < w1[k,i]){
print(V[i,i, ])
} else {
NULL
}
}
我明白了:
Error in if (V[i, i, ] < w1[k, i]) { :
missing value where TRUE/FALSE needed
In addition: Warning message:
In if (V[i, i, ] < w1[k, i]) { :
the condition has length > 1 and only the first element will be used
请帮忙吗?