我已经编写了一个函数来为包含数百个问题的大型数据集制作图表。所有图表都来自同一数据集,并从“图形标题”中将标题拉为字符串。 csv的列我已经读过。其中一些标题相当长,应分成两行。也许是因为他们来自csv,标题不会以\n
转义,即使他们这样做,似乎应该有一个比添加{{1}更简单的方法} CSV中适当位置的每个变量名称。
有没有办法让我的功能自动分割标题行?我知道我可以改变标题的大小,但这会使它变得难以辨认
\n
答案 0 :(得分:3)
以下是分解长字符串的两种方法:
gsub('(.{1,10})(\\s|$)', '\\1\n', s)
会将字符串s
拆分为10
分隔的\n
行。strwrap
函数,width
参数包含paste
函数和collapse = \n
参数。通过示例更容易理解......
long_title <- "This is a title that is perhaps too long to display nicely"
gsub('(.{1,10})(\\s|$)', '\\1\n', long_title)
# [1] "This is a\ntitle that\nis perhaps\ntoo long\nto display\nnicely\n"
paste(strwrap(long_title, width = 10), collapse = "\n")
# [1] "This is a\ntitle\nthat is\nperhaps\ntoo long\nto\ndisplay\nnicely"
N.B。我相信strwrap
和/或stringi
包中的stringr
处理得更优雅(并且有效地猜测)(请参阅stringi::stri_wrap
或stringr::str_wrap
)。