Понимание поднабора матрицы: `mat [2, mat [1,] == 1] == 1` - PullRequest
0 голосов
/ 08 мая 2019

См. этот ответ .

Мне трудно понять следующее:

   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

1 Ответ

1 голос
/ 09 мая 2019

По сути, вы принимаете среднее значение логического значения - ИСТИНА или ЛОЖЬ. Среднее рассчитывает каждое значение FALSE как 0, а каждое значение TRUE - как 1. Таким образом, в строке 2 у вас есть два значения FALSE для среднего значения (0 + 0) / 2 = 0. В строке 1 у вас есть два значения TRUE для среднее значение (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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...