gpt4 book ai didi

r - 在函数内部打印或显示变量

转载 作者:行者123 更新时间:2023-12-04 02:43:37 26 4
gpt4 key购买 nike

有没有一种方法可以在函数内部print或显示变量的值,而不是在调用函数之后在函数外部打印值?

我几乎可以肯定,并且以为代码被称为reveal或类似名称,但是我不记得正确的术语。

my.function <- function(x) {

y <- x^2
# reveal(y)
# display(y)

# desired result is to print or display here:
# [1] 16

cat(y)
print(y)
return(y)
}

x <- 4

my.function(x)
#16[1] 16
#[1] 16


cat(y)print(y)return(y)均在功能之外打印。感谢您的任何建议。

编辑

我在这里找到了类似的问题:

https://stat.ethz.ch/pipermail/r-help/2002-November/027348.html

Peter Dalgaard对这个问题的回答是取消选中 buffered output选项卡下名为 Misc的选项。但是,就我而言,这似乎不起作用。也许这些问题是无关的。

最佳答案

您可以在函数内放置print()调用(或对此问题进行cat()调用),如果执行到达该点,即使以后发生错误,也会在控制台上产生输出。

 > myf <- function(x){ print(x); y <- x^2; print(y); error() }
> myf(4)
[1] 4
[1] 16
Error in myf(4) : could not find function "error"


使用browser()函数作为调试路线可能更优雅。您可以通过更改options()来设置其操作:

> options(error=recover)
> myf(4)
[1] 4
[1] 16
Error in myf(4) : could not find function "error"

Enter a frame number, or 0 to exit

1: myf(4)

Selection: 1
Called from: top level
Browse[1]> x
[1] 4
Browse[1]> y
[1] 16
Browse[1]> # hit a <return> to exit the browser

Enter a frame number, or 0 to exit

1: myf(4)

Selection: 0 # returns you to the console

关于r - 在函数内部打印或显示变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22740082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com