此代码可以创建多个“特殊”向量吗?

时间:2019-07-07 22:14:01

标签: r

我是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中的类那样具有自己的对象和函数?有人可以澄清一下,因为我自己很难解决这个问题。

0 个答案:

没有答案