Ответ 1
printf <- function(...) invisible(print(sprintf(...)))
Внешний вызов invisible
может быть ненужным, я не на 100% не понимаю, как это работает.
Я ищу, как делать printf в r, т.е. хочу набрать:
printf("hello %d\n", 56 )
и получите тот же результат, что и ввод:
print(sprintf("hello %d\n", 56 )
Я прочитал следующие ссылки:
... поэтому я знаю, что могу использовать cat("hello", 56)
, и, вероятно, что я буду делать, но просто интересно, есть ли какой-нибудь ярлык для написания print(sprintf(...))
?
Извините, если этот вопрос является дубликатом (я не знаю). Очень сложно найти "printf r", так как он возвращает результаты для php, c,...
printf <- function(...) invisible(print(sprintf(...)))
Внешний вызов invisible
может быть ненужным, я не на 100% не понимаю, как это работает.
Мое решение:
> printf <- function(...) cat(sprintf(...))
> printf("hello %d\n", 56)
hello 56
Ответы, данные Zack и mnel, печатают символ возврата каретки как литерал. Не круто.
> printf <- function(...) invisible(print(sprintf(...)))
> printf("hello %d\n", 56)
[1] "hello 56\n"
>
> printf <- function(...)print(sprintf(...))
> printf("hello %d\n", 56)
[1] "hello 56\n"
Если вам нужна функция, которая печатает (sprintf (...)), определите функцию, которая делает это.
printf <- function(...)print(sprintf(...))
printf("hello %d\n", 56)
## [1] "hello 56\n"
d <- printf("hello %d\n", 56)
## [1] "hello 56\n"
d
## [1] "hello 56\n"
Я делаю так:
printf = function(s, ...) cat(paste0(sprintf(s, ...)), '\n')