Блог переехал. Актуальная версия поста находится по адресу: http://aakinshin.net/ru/blog/r/compound-assignment/.
Продолжаем писать полезные операторы для языка R. В большинстве современных языков есть операторы +=, -= и т.п., они делают синтаксис более лаконичным. А давайте и в R определим подобные операторы, чтобы вместо
x <- x + 3 y <- y - 2
x %+=% 3 y %-=% 2
'%+=%' <- function(x, y) { mapply(assign, as.character(substitute(x)), x + y, MoreArgs = list(envir = parent.frame())) invisible() } '%-=%' <- function(x, y) { mapply(assign, as.character(substitute(x)), x - y, MoreArgs = list(envir = parent.frame())) invisible() }
a <- 3 a %+=% 2 # a <- a + 2 a # 5 a %-=% 1 # a <- a - 1 a # 4
Комментариев нет:
Отправить комментарий