r - 使用新行创建动态文本
问题描述
我正在尝试创建一个用于在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 中创建动态多行文本似乎没有一个简单的解决方案。或者,我错过了什么?
解决方案
这里的根本问题cat
是用于在屏幕上显示文本或输出到文本文件(或其他连接)。尝试保存cat
类似的输出时:
out <- cat("blah")
没有任何东西返回分配给 out。根据帮助文件?cat
:
价值:
无(不可见的“NULL”)。
paste
适合用于将字符串连接在一起,包括换行符(\n
在 R 中的命令行上显示时表示)。
x <- "line one"
y <- "line two"
paste(x,y,sep="\n")
#[1] "line one\nline two"
虽然这看起来不像它应该出现在命令行上,并且全部出现在一行上,但它实际上是您想要的。实际上,您实际上可以cat
再次使用来检查格式化输出最终在您的图表上的外观:
cat(paste(x,y,sep="\n"))
#line one
#line two
推荐阅读
- unity3d - 为什么立方体在画布/面板 ui 上是透明的?
- c++ - 为什么使用父指针指向子类?
- java - 百家乐游戏中的错误附加值
- django - Django多对一关系,外键作为文本输入
- java - InteractionDialog 相对于 Dialog 的优势?
- scala - Akka 持久化参与者 - 函数式方法
- angular - 将现有对象添加到数组并在视图上显示(2way 绑定)
- testing - 如何为 escript 项目在 elixir 中编写 ExUnit 测试用例
- ruby-on-rails - Rails Enum 返回整数值,而不是字符串表示
- vb.net - 尝试使用 VB.Net 列出某个目录中的所有文件