Выбор ячейки R с помощью apply

#r #matrix #cell #apply

#r #матрица #ячейка #применить

Вопрос:

я пытаюсь выбрать конкретную ячейку из матрицы (данных) и изменить значение на 1

я получил эти 2 вектора

 data <- matrix(0,300,300)
X <- c(1,5,87,987,67)
Y <- c(5,7,12,456,99)
  

x1 и y1 (т. Е. 1,5) указывают позицию, которую я хочу выбрать в своей матрице

Я не хочу выбирать (x1, y2)

Я сделал то, что я хочу сделать с:

 for (i in 1:length(x)){
  data[x[i],y[i]]<-1
}


  

я почти уверен, что смогу сделать то же самое с apply, который мог бы работать быстрее

Спасибо за вашу помощь

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

1. Привет, да, спасибо, cbind (X, Y) работает отлично. Я не знал этого трюка

2. Спасибо, я не знал, что могу пометить ответ как решающий

Ответ №1:

cbind X и Y и присвоить значение

 data[cbind(X, Y)]  <- 1

#     [,1] [,2] [,3] [,4] [,5]
#[1,]    0    1    0    0    0
#[2,]    0    0    0    0    0
#[3,]    0    0    1    0    0
#[4,]    0    0    0    1    0
#[5,]    0    0    0    0    0
  

данные

Использование меньшего набора данных

 X <- c(1,3,4)
Y <- c(2,3,4)
data <- matrix(0, ncol = 5, nrow = 5)

data
#     [,1] [,2] [,3] [,4] [,5]
#[1,]    0    0    0    0    0
#[2,]    0    0    0    0    0
#[3,]    0    0    0    0    0
#[4,]    0    0    0    0    0
#[5,]    0    0    0    0    0