sprintf отключен внутри функции в R - PullRequest
1 голос
/ 01 апреля 2020

Я пытаюсь получить доступ к внутренним переменным кода, который я отлаживаю в R с помощью sprintf.

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 работа внутри функции?

1 Ответ

1 голос
/ 01 апреля 2020

Мы можем использовать 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")  
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...