Запоминание изменений, сделанных пользовательской функцией - PullRequest
0 голосов
/ 24 марта 2020

допустим, у меня есть пустая матрица

blank <- matrix(,3,3)

Теперь я хочу заполнить указанные c элементы матрицы и слишком ленив, чтобы набрать blank[row, col] <- value Я хотел создать пользовательскую функцию

populate <- function(row, col, value) {
     blank[row, col] <- value
     return(blank)
}

Поэтому, когда я ввожу populate(1,1,5), он возвращает желаемый вывод, но вывод не сохраняется под объектом blank, т. Е. При следующем вводе populate(1,3,2) Я хочу, чтобы blank[1,1] показывал 5, а blank[1,3] - 2, но происходит только последнее, т.е. первая команда забыта.

Как моя пользовательская функция может вносить постоянные изменения в объект blank

1 Ответ

0 голосов
/ 24 марта 2020

Одним из способов достижения sh является то, что вы хотите, с помощью <<- внутри вашей функции. Затем, когда вы присваиваете значение, оно происходит в вызывающей среде.

blank <- matrix(,3,3)
populate <- function(row, col, value) {
     blank[row, col] <<- value
}
populate(1,1,5)
populate(1,3,2)
blank
     [,1] [,2] [,3]
[1,]    5   NA    2
[2,]   NA   NA   NA
[3,]   NA   NA   NA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...