gpt4 book ai didi

r - 返回函数结果后发送消息

转载 作者:行者123 更新时间:2023-12-04 09:42:26 27 4
gpt4 key购买 nike

考虑以下函数 foo

foo <- function(x) {
print(x)
message("test message")
}

我要发消息 函数的结果,这样如果结果很长,我就不必向上滚动以查看是否有重要消息(或更改我的 max.print 选项)。问题是当我想分配结果而不打印实际结果时。

有没有办法打印函数的结果,然后是消息,而且当我分配结果时什么都不打印?理想情况下,我想避免使用 print共。

没有赋值的期望结果是
> foo(5)                            
# [1] 5
# test message

期望的赋值结果是
> bar <- suppressMessages(foo(5))
> bar
# [1] 5

最佳答案

您可以通过为您的 foo 创建一个类来实现这一点。功能,例如bar ,然后为这个新类创建一个打印方法。

例如:

foo <- function(x) {
class(x) <- c("bar", class(x))
x
}


print.bar <- function(x, message=TRUE, ...){
class(x) <- setdiff("bar", class(x))
NextMethod(x)
if(message) message("test message")

}

现在试试:
foo(5)
[1] 5
test message

有任务:
x <- foo(5)
x
[1] 5
test message

print 互动的一些其他方式方法:
print(x, message=FALSE)
[1] 5

suppressMessages(print(x))
[1] 5

关于r - 返回函数结果后发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25499276/

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