Textwrapping cadeia longa knitr de saída (RStudio)
-
21-12-2019 - |
Pergunta
Eu tenho um longo vetor de string (seqüência de DNA) de até alguns milhares de caracteres seqüenciais que eu deseja adicionar à minha knitr relatório de saída.RStudio lida com a disposição do texto perfeitamente no console, mas quando eu gerar o knitr html de saída eu posso ver apenas uma linha de texto e ele só é executado fora da página.
RStudio de saída
knitr de saída
Qualquer forma de ajuste knitr saída para moldar o texto?
Obrigado.
Solução
Eu recomendo que você tente o R Markdown v2.O padrão de modelo HTML não quebra automática de texto para você.Isto é conseguido através das definições de CSS para a tag do HTML pre
/code
, e.g. word-wrap: break-word; word-break: break-all;
.Estas definições são, na verdade, de Bootstrap (atualmente rmarkdown usa Bootstrap 2.3.2).
Você ainda estavam usando a primeira versão de R Markdown, a saber, a markdown pacote.Certamente você pode atingir o mesmo objetivo, utilizando alguns personalizado definições CSS, e ele só exige que você aprenda mais sobre HTML/CSS.
Outra solução é manualmente quebrar a longa seqüência de caracteres usando a função str_break()
Eu escrevi abaixo:
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')
```