В R можно использовать символ <<-
в функции lapply()
, чтобы присвоить значение переменной вне lapply()
.
Давайте рассмотрим матрицу, полную 1:
m<-matrix(data=1, nrow=5, ncol=5)
Допустим, я хочу заменить каждую строку на значения 1,2,3,4 и 5, используя символ присваивания <<-
. Я могу использовать функцию lapply (она не предназначена для такого рода операций, это только пример):
lapply(X = seq(nrow(m)), FUN = function(r){
m[r,]<<-seq(5)
})
Это будет работать.
Но если я Теперь используйте mclapply следующим образом:
mclapply(X = seq(nrow(m)), FUN = function(r){
m[r,]<<-seq(5)
})
Матрица m останется заполненной 1.
Идея состоит в том, чтобы применить изменения к строкам матрицы, не создавая новую, а скорее присваивая их в существующем. Единственное ограничение - использовать функцию из параллельного пакета (например, mclapply (), но, возможно, лучше подойдет другая функция).
Также использование символа <<-
не обязательно.
Как я могу это сделать?