用新行创建动态文本

时间:2018-12-21 03:41:38

标签: r string dynamic

我正在尝试创建一个文本框来显示ggplot2中的文本。为了使文本样式化,我希望将信息分成几行。这就是我正在尝试的:

txt1<-paste("Question: ", df$q1) ; txt2<-paste("Gender: ", df$gender)
txt3<-paste("response: ", df$rspns)
txt<-cat(paste(txt1, txt2, txt3, sep = "\n"))

当我尝试打印txt时,它显示为NULL,因为cat的输出未分配给txt。我曾尝试使用capture.output(cat(paste(txt1, txt2, txt3, sep = "\n"))),但这将行换成列表中的其他条目。

在R中创建动态多行文本似乎不是一个简单的解决方案。或者,我是否缺少某些内容?

1 个答案:

答案 0 :(得分:0)

这里的根本问题是cat用于在屏幕上显示文本或输出到文本文件(或其他连接)。尝试保存cat的输出时,例如:

out <- cat("blah")

没有任何东西返回分配给out。根据{{​​1}}上的帮助文件:

  

值:

     

无(不可见的“ NULL”)。

?cat适用于将字符串连接在一起,包括换行符(在R中的命令行中显示时,由paste表示)。

\n

虽然这看起来不应该在命令行上显示,而是全部显示在一行上,但这实际上是您想要的。实际上,您实际上可以再次使用x <- "line one" y <- "line two" paste(x,y,sep="\n") #[1] "line one\nline two" 来检查格式化后的输出最终在图形上的外观:

cat