我是R的新手,我只是想弄清楚环境以及如何使用它们。在下面的代码中,我了解到我们正在创建4个函数的列表。但是在makeVector的这种环境中,创建了一个对象m,并将其初始分配为null。我不明白(来自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中的类那样具有自己的对象和函数?有人可以澄清一下,因为我自己很难解决这个问题。