#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