text在knitr输出中包装长字符串(RStudio)

text在knitr输出中包装长字符串(RStudio),r,knitr,rstudio,word-wrap,r-markdown,R,Knitr,Rstudio,Word Wrap,R Markdown,我有一个长达数千个连续字符的长向量字符串(DNA序列),我想将其添加到knitr报告输出中。RStudio在控制台中完美地处理文本包装,但当我生成knitr html输出时,我只能看到一行文本,它只是从页面上消失 RStudio输出 刀输出 有没有办法调整knitr输出以换行文本 谢谢。我建议你试试这个。默认的HTML模板为您进行文本包装。这是通过HTML标记pre/code的CSS定义实现的,例如wordwrap:break-word;单词break:打破一切。这些定义实际上来自引导(当前

我有一个长达数千个连续字符的长向量字符串(DNA序列),我想将其添加到knitr报告输出中。RStudio在控制台中完美地处理文本包装,但当我生成knitr html输出时,我只能看到一行文本,它只是从页面上消失

RStudio输出

刀输出

有没有办法调整knitr输出以换行文本


谢谢。

我建议你试试这个。默认的HTML模板为您进行文本包装。这是通过HTML标记
pre
/
code
的CSS定义实现的,例如
wordwrap:break-word;单词break:打破一切。这些定义实际上来自引导(当前rmarkdown使用)

您仍然在使用R Markdown的第一个版本,即包。您当然可以使用一些自定义CSS定义来实现相同的目标,它只需要您了解更多关于HTML/CSS的知识

另一种解决方案是使用函数
str\u break()
手动中断长字符串,我在下面写到:

A helper function `str_break()`:

```{r setup}
str_break = function(x, width = 80L) {
  n = nchar(x)
  if (n <= width) return(x)
  n1 = seq(1L, n, by = width)
  n2 = seq(width, n, by = width)
  if (n %% width != 0) n2 = c(n2, n)
  substring(x, n1, n2)
}
```

See if it works:

```{r test}
x = paste(sample(c('A', 'C', 'T', 'G'), 1000, replace = TRUE), collapse = '')
str_break(x)
cat(str_break(x), sep = '\n')
```
A helper函数'str_break()`:
```{r设置}
str_break=函数(x,宽度=80L){
n=nchar(x)

if(n)尝试了,但不起作用。我刚刚意识到你有一个向量,而不是一个长字符串。你能提供一个最小的可复制的例子吗?strwrap()函数由于某种原因对我不起作用,字符串仍然在屏幕上运行。到目前为止,对我来说最好的方法是使用CSS def“溢出包装:断开单词”,但如何在多个字符串之间插入换行符?例如,
{r,echo=FALSE,eval=TRUE,tidy=FALSE,strip.white=FALSE}粘贴(示例(c(“A”,“c”,“T”,“g”),1000,replace=T),collapse=“”)粘贴(示例(c(“A”,“c”,“T”,“g”),1000,replace=T),collapse=“”)
@biomiha strrap()在您的情况下不起作用,因为字符串中没有空格,因此它不知道如何正确地断开字符串。我将为您提供一个替代函数。最简单的解决方案是我首先说的:使用rmarkdown()。如果你真的想搞乱CSS,那很好,但是你需要了解更多关于降价包的知识,以及如何自定义模板,等等(),如果你不介意的话,这可能需要你几个小时。是的,stru_break函数非常完美。谢谢易慧。