Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R RStudio重置调试/功能环境_R_Debugging_Rstudio - Fatal编程技术网

R RStudio重置调试/功能环境

R RStudio重置调试/功能环境,r,debugging,rstudio,R,Debugging,Rstudio,我试图在调用函数时阻止R显示函数代码和环境信息。此功能是讲师提供的Coursera R编程作业的一部分。以下是行为: R脚本: makeVector <- function(x = numeric()) { m <- NULL set <- function(y) { x <<- y m <<- NULL } get <-

我试图在调用函数时阻止R显示函数代码和环境信息。此功能是讲师提供的Coursera R编程作业的一部分。以下是行为:

R脚本:

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)
}

makeVector首先,这与Rstudio无关:Rstudio只是一个IDE,如果它以某种方式弄乱了你的代码,那会很奇怪,不是吗?你所看到的行为是完全正确的,并且完全是它应该做的。如果您熟悉OOP,那么您将得到一个包含多种方法的“对象”。下面是一个小演示,展示了预期用途:

x <- 1:10
xx <- makeVector(x)
xx$get()
# [1]  1  2  3  4  5  6  7  8  9 10
xx$getmean()
#NULL
xx$setmean(mean(x))
xx$getmean()
#[1] 5.5
xx$setmean("Hi, I am a mean")
xx$getmean()
#[1] "Hi, I am a mean"

x首先,这与Rstudio无关:Rstudio只是一个IDE,如果它以某种方式弄乱了你的代码,那会很奇怪,不是吗?你所看到的行为是完全正确的,并且完全是它应该做的。如果您熟悉OOP,那么您将得到一个包含多种方法的“对象”。下面是一个小演示,展示了预期用途:

x <- 1:10
xx <- makeVector(x)
xx$get()
# [1]  1  2  3  4  5  6  7  8  9 10
xx$getmean()
#NULL
xx$setmean(mean(x))
xx$getmean()
#[1] 5.5
xx$setmean("Hi, I am a mean")
xx$getmean()
#[1] "Hi, I am a mean"

x如果您从未真正调用过函数,它为什么会执行这些函数呢?澄清一下,您编写的函数会生成一些不同的函数,然后在列表中返回给用户。他们从来没有被调用过,为什么你会对他们从来没有被执行过感到困惑呢?哇,谢谢你照亮了Dason…我想我没有仔细观察它,没有看到它通过列表返回函数。我也被这个部分弄糊涂了,我希望它使用x并以某种方式将其作为输出返回。Dason你是说我得到的结果是你期望的吗?再次感谢。是的,输出正是我所期望的。一般来说,这也是一个很好的经验法则。。。如果某些事情没有按照你期望的方式运行,你可能会想,你不像你所想的那样理解语言,而不是匆忙地得出结论:安装被边缘化并试图卸载所有的东西。为什么M如果你从来没有真正调用过它,为什么它会执行这些功能?编写的函数生成几个不同的函数,然后在列表中将它们返回给用户。他们从来没有被调用过,为什么你会对他们从来没有被执行过感到困惑呢?哇,谢谢你照亮了Dason…我想我没有仔细观察它,没有看到它通过列表返回函数。我也被这个部分弄糊涂了,我希望它使用x并以某种方式将其作为输出返回。Dason你是说我得到的结果是你期望的吗?再次感谢。是的,输出正是我所期望的。一般来说,这也是一个很好的经验法则。。。如果有些东西没有按照你期望的方式运行,你可能会想,你不像你所想的那样理解语言,而不是匆忙地得出这样的结论:安装被边缘化并试图卸载所有的东西。
x <- 1:10
xx <- makeVector(x)
xx$get()
# [1]  1  2  3  4  5  6  7  8  9 10
xx$getmean()
#NULL
xx$setmean(mean(x))
xx$getmean()
#[1] 5.5
xx$setmean("Hi, I am a mean")
xx$getmean()
#[1] "Hi, I am a mean"