我正在尝试访问使用sprintf在R中调试的代码的内部变量。
sprintf("sprintf OUTSIDE a function: easy as %.2f",pi)
myFunc <- function() {
sprintf("sprintf INSIDE a function: easy as %.2f",pi)
print("print still works")
}
myFunc()
这个产量
> sprintf("sprintf OUTSIDE a function: easy as %.2f",pi)
[1] "sprintf OUTSIDE a function: easy as 3.14"
> myFunc <- function() {
+ sprintf("sprintf INSIDE a function: easy as %.2f",pi)
+ print("print still works")
+ }
> myFunc()
[1] "print still works"
我在RStudio中发现了一些更好的调试功能,但我仍然很好奇...
为什么sprintf停止在函数内部工作?
return
如果不是最后一行,我们可以使用
myFunc <- function() {
return(sprintf("sprintf INSIDE a function: easy as %.2f",pi))
print("print still works")
}
或重新排列语句的顺序
myFunc <- function() {
print("print still works")
sprintf("sprintf INSIDE a function: easy as %.2f",pi)
}
myFunc()
#[1] "print still works"
#[1] "sprintf INSIDE a function: easy as 3.14"
如果只需要print
,则sprintf
用print
myFunc <- function() {
print(sprintf("sprintf INSIDE a function: easy as %.2f",pi))
print("print still works")
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句