R语言 函数执行不总是打印到控制台[重复]

6l7fqoea  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(154)

此问题在此处已有答案

R function not returning values(3个答案)
4天前关闭。
R函数会自动返回最后一个表达式。我假设这些函数fg是等价的。但是,它们在控制台中的行为不同。f不打印任何东西(!),并以静默方式返回10
我怎么能理解这个呢?我已经使用R很多年了,这让我挠头。
我经常使用控制台来调试,当我不能依赖函数输出打印到控制台时,这是令人困惑和沮丧的。

f <- function(x) a <- 10
g <- function(x) 10

f() # doesn't print anything!
print(f())
#> [1] 10

g() # prints
#> [1] 10
print(g())
#> [1] 10

创建于2023-03-29带有reprex v2.0.2

i7uq4tfw

i7uq4tfw1#

如果你在控制台执行a <- 10,它不会打印任何东西,如果它是函数中的最后一条语句,也没有什么不同。
这样做是因为函数结果可以被标记为“不可见”,所以它们不会打印出来,赋值函数<-就是这样做的。你可以在自己的函数中显式调用invisible(result)来实现这一点。
要使结果可见,最简单的方法是将值放在括号中。例如,(a <- 10)将返回一个可见的结果,并对a进行赋值。与示例中的(f())相同。

相关问题