如何使用带有数组值的条件语句

时间:2018-03-12 12:52:18

标签: r

假设我有一个这样的数组:

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

请帮忙吗?

0 个答案:

没有答案