【问题标题】:R : wrap text function: inserting \n automatically after every 16 charactersR:换行功能:每 16 个字符后自动插入 \n
【发布时间】:2017-01-14 05:58:12
【问题描述】:

我有一个字符串:

str1 <- "aaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa aaaaaaa aaa aaa"
str1
nchar(str1)

我想在每 16 个字符(包括空格)之后自动插入 \n,以便创建一个换行文本函数以用于基本图形绘图。

我试过了:

 str2 <- strwrap(str1, width = 16)
 str2

但这不起作用

 plot(1:10,main=str2)
 mtext(str2, side=1, line=0, outer=F,cex=1,col="blue")

还有一种方法可以正确拆分单词并在必要时添加额外的空格,就像在正确的自动换行功能中一样。 感谢您的帮助。

【问题讨论】:

标签: r word-wrap


【解决方案1】:

我们也可以试试这个:

str2 <- paste(sapply(seq(1, nchar(str1), 16), function(i) paste0(substring(str1, i, min(i + 15, nchar(str1))), '\n')), collapse='')
str2
#[1] "aaaaaaaaaa aaaaa\naaaaaaaaa aaaaaa\naaaaaaaaaa aaaaa\naaaaaaaaaaaa aaa\naaaa aaa aaa\n"

gregexpr('\n', str2) # position of inserted newlines
#[[1]]
#[1] 17 34 51 68 81

【讨论】:

  • 感谢您的出色解决方案。有没有办法为分解的单词添加连字符?
  • 使用 gsub 在顶部用连字符替换空白
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-09
  • 1970-01-01
  • 2014-10-16
  • 1970-01-01
  • 2012-03-26
相关资源
最近更新 更多