如何将cat的输出作为字符串而不是打印出来?

时间:2019-06-06 15:32:59

标签: r

我正在寻找一种以字符串形式获取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 个答案:

答案 0 :(得分:4)

您还可以修改当前代码:

paste(c("A", c(1,2,3)), collapse = ",")
      ↑↑             ↑
[1] "A,1,2,3"

答案 1 :(得分:3)

如果我们特别想使用catHow 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"