Индексирование переменной другой переменной в R - PullRequest
0 голосов
/ 17 октября 2018

У меня есть следующие 2 матрицы.

#generate matrices    
x11=matrix(rep("green",2), 4, (2)) 
y11=matrix(c(1,0,0,1,0,0,1,1),nrow=4,byrow = T)

> x11
         [,1]    [,2]   
    [1,] "green" "green"
    [2,] "green" "green"
    [3,] "green" "green"
    [4,] "green" "green"

> y11
             [,1] [,2]
        [1,]    1    0
        [2,]    0    1
        [3,]    0    0
        [4,]    1    1

Так что теперь мне нужно изменить значение (i, j) индексов x11, учитывая значение y11.Это означает, что если значение y11 равно нулю, то мне нужно изменить этот индекс x11 на красный.(Пример: - Мне нужно изменить значение, соответствующее первой строке и второму столбцу x11, на красный, так как значение y11 первой строки и второго столбца равно нулю)

Для этого я использовал следующий кодсегмент.Но, похоже, не работает.

  x11[y11] = "red"

Может кто-нибудь помочь мне решить эту проблему?

1 Ответ

0 голосов
/ 17 октября 2018

Мы можем создать логическую матрицу с помощью 'y11', т.е. !y11 вернуть TRUE для всех 0 и других как FALSE.Используйте это для подстановки «x11» и присвойте этим элементам «красный»

x11[!y11] <- "red"

Если мы не хотим изменять исходную матрицу, тогда используйте replace

replace(x11, !y11, "red")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...