Изменение изменение элементов матрицы в соответствии с вектором в R

#r #matrix

Вопрос:

У меня есть матрица, для каждой строки я хочу изменить элемент столбца, определенный вектором, на противоположный, так что 1 становится 0 наоборот. Мой код не совсем этого достигает, может кто-нибудь помочь. Спасибо.

 mm <- matrix(round(runif(9)),3,3)

ii <- c(1,2,3)

apply(mm, 1, function(x) mm[,ii] <- !mm[ii])

 

Комментарии:

1. Что именно должен делать вектор?

2. таким образом, для первой строки первый элемент должен измениться с 0 на 1 или наоборот, для второй строки второй элемент должен быть перевернут и так далее. Не самое лучшее использование c(1,2,3) , так как я мог бы использовать diag (), но в целом, как это делается?

3. Можете ли вы показать свой ожидаемый результат?. Обратите внимание, что в индексе R позиция для первого элемента равна 1, а не 0, второй элемент равен 2, а не 1 и так далее….

4. Ты имеешь в виду что-то вроде mm[cbind(ii, ii)] <- !mm[cbind(ii, ii)] ?