R RStudio重置调试/功能环境
我试图在调用函数时阻止R显示函数代码和环境信息。此功能是讲师提供的Coursera R编程作业的一部分。以下是行为: R脚本: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 <-
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"