Как получить вывод cat в виде строки вместо ее печати? - PullRequest
0 голосов
/ 06 июня 2019

Я ищу способ получить вывод команды cat() в виде строки (вместо того, чтобы выводить ее на экран).Я думал, что paste() сделает это, но есть различия:

> cat("A", c(1,2,3), sep=",")
A,1,2,3
> paste("A", c(1,2,3), sep=",")
[1] "A,1" "A,2" "A,3"
> paste("A", c(1,2,3), collapse=",")
[1] "A 1,A 2,A 3"

Есть ли функция для получения того, что cat() напечатает?

Ответы [ 2 ]

4 голосов
/ 06 июня 2019

Вы также можете адаптировать свой текущий код:

paste(c("A", c(1,2,3)), collapse = ",")
      ↑↑             ↑
[1] "A,1,2,3"
3 голосов
/ 06 июня 2019

Если мы специально хотим сделать это с cat (How to get the output of cat as a string instead of printing it?), то захватите вывод с помощью capture.output. print/cat возвращает NULL

capture.output(cat("A", c(1,2,3), sep=","))
#[1] "A,1,2,3"

Если мы хотим записать вывод, у него есть опция file

cat("A", c(1, 2, 3), sep=",",  file = "file.txt")

Или используя toString из base R

toString(c("A", c(1,2,3)))
#[1] "A, 1, 2, 3"

или с str_c

library(stringr)
str_c(c("A", c(1,2,3)), collapse=",")
#[1] "A,1,2,3"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...