请参见this answer。
我无法理解以下内容:
mean(sim[2, sim[1, ] == 1] == 1) # [1] 0.4583333
如果可能的话,那么为什么下面的数字为0?
> sim = matrix(c(1,2,1,2,1,2), nrow = 2, ncol = 3, byrow = TRUE)
> sim
[,1] [,2] [,3]
[1,] 1 2 1
[2,] 2 1 2
>
> # list 2nd row of the matrix
> row2 <- sim[2, sim[1, ] == 1] == 1
> row2
[1] FALSE FALSE
>
> mean(row2)
[1] 0
答案 0 :(得分:1)
您实质上是在取逻辑值的平均值-TRUE或FALSE。平均值是将每个FALSE值计算为0,每个TRUE值计算为1。因此,在第2行中,您有两个FALSE值,平均值为(0 + 0)/ 2 =0。在第1行中,您有两个TRUE值,其中a (1 + 1)/ 2 = 1的平均值。
sim = matrix(c(1,2,1,2,1,2), nrow = 2, ncol = 3, byrow = TRUE)
row2 <- sim[2, sim[1, ] == 1] == 1
row2
mean(row2)
row1 <- sim[1, sim[1, ] == 1] == 1
row1
mean(row1)