Я новичок в R и просто разбираюсь в окружении и как с ним поиграться. В коде ниже я понимаю, что мы создаем этот список из 4 функций. Но в этой среде makeVector создан объект m, которому присваивается нулевое значение. Что я не понимаю (из кодировщика языка C), как это хранится?
Я понимаю, что makeVector имеет свою собственную среду и имеет 6 вещей: x, m, set, get, setmean, getmean.
makeVector <- function(x = numeric()) {
m <- NULL
set <- function(y) {
x <<- y
m <<- NULL
}
get <- function() x
setmean <- function(mean) m <<- mean
getmean <- function() m
list(set = set, get = get,
setmean = setmean,
getmean = getmean)
}
Например,
x1 <- makeVector(as.numeric(1:4))
x2 <- makeVector(as.numeric(1:5))
Теперь мой вопрос: есть ли у x1 и x2 свои копии m или у них один и тот же объект m?
Опять же, если у них есть разные копии m, разве makeVector не похож на класс в C со своими собственными объектами и функциями? Может кто-нибудь уточнить, потому что мне самому трудно это понять.