R 如何查看函数中变量的值?

R 如何查看函数中变量的值?,r,R,可能重复: 调试时,我通常希望知道已完成执行的函数中使用的变量的值。如何才能做到这一点 例如: 我有以下职能: MyFunction <- function() { x <- rnorm(10) # assign 10 random normal numbers to x return(mean(x)) } MyFunction这里有很多选项。最简单的方法是使用,这里有很多选项。最简单的方法是使用您提到的调试MyFunctionMyFunction,因此我假设脚本

可能重复:

调试时,我通常希望知道已完成执行的函数中使用的变量的值。如何才能做到这一点

例如:

我有以下职能:

MyFunction <- function() {
    x <- rnorm(10) # assign 10 random normal numbers to x
    return(mean(x))
}

MyFunction这里有很多选项。最简单的方法是使用
,这里有很多选项。最简单的方法是使用您提到的调试
MyFunction
MyFunction,因此我假设脚本后面不需要这些值,您只需要检查发生了什么。在这种情况下,我总是使用
浏览器

MyFunction <- function() {
    browser()
    x <- rnorm(10) # assign 10 random normal numbers to x
    return(mean(x))
}

MyFunction您提到了调试,因此我假设脚本后面不需要这些值,您只想检查发生了什么。在这种情况下,我总是使用
浏览器

MyFunction <- function() {
    browser()
    x <- rnorm(10) # assign 10 random normal numbers to x
    return(mean(x))
}

MyFunction已经有一些很好的解决方案,我想添加一种可能性。我强调一个事实,即您想知道在已完成执行的函数中使用的变量的值。因此,可能不需要分配这些值,并且您不希望(先验地)停止执行。解决方法是简单地使用
打印
。因此,默认情况下不使用它,但仅当您要调试时,打印或不打印选项可以作为函数参数传递:

MyFunction <- function(x, y, verbose = FALSE) {
    a <- x * y
    if (verbose) print(a)
    b <- x - y
    if (verbose) print(b)
    return(a * b)
}

MyFunction已经有一些很好的解决方案,我想添加一种可能性。我强调一个事实,即您想知道在已完成执行的函数中使用的变量的值。因此,可能不需要分配这些值,并且您不希望(先验地)停止执行。解决方法是简单地使用
打印
。因此,默认情况下不使用它,但仅当您要调试时,打印或不打印选项可以作为函数参数传递:

MyFunction <- function(x, y, verbose = FALSE) {
    a <- x * y
    if (verbose) print(a)
    b <- x - y
    if (verbose) print(b)
    return(a * b)
}

MyFunction@Dmitri如果这对您有效,那么我肯定会使用这种方法,因为它维护(安全)功能范例。有时x包含数百万条条目,我不想让它返回。@Dmitri如果这对您有效,那么我肯定会使用这种方法,因为它维护(安全)函数范例。有时x包含数百万个条目,我不想让它返回。OP在调试时声明
,所以OP可能希望有值来检查事情是否正常。在这种情况下,我会使用
browser
。OP在调试时声明
,因此OP可能希望有值来检查事情是否正常。在这种情况下,我会使用
browser
。为了避免修改代码,您还可以使用
debug(MyFunction)
debugonce(MyFunction)
。但是这些都会在调用函数时中断执行。为了避免修改代码,您还可以使用
debug(MyFunction)
debugonce(MyFunction)
。但是这些都会在调用函数时中断执行。我已经经常使用它,但是有时候我的向量有一百万个条目…你不必打印整个对象,你可以打印它的
str
摘要
长度
平均值
,等等。我已经经常使用它,然而,有时我的向量有一百万个条目……你不必打印整个对象,你可以打印它的
str
摘要
长度
平均值
,等等。