poligono para pairs librerias graficos grafico graficas graficar grafica ejemplos cuadricula animados r text justify

para - Justifica el texto en R



poligono en r (1)

¿Cómo justificas el texto en R? Por justificar quiero decir que cada línea en un párrafo tiene exactamente la misma longitud (como cuando justifica en una oficina abierta o sobresale). He intentado encontrar una opción con strwrap y cat pero no he tenido éxito.

## Get some sample text example from wikipedia api library(httr) library(xml2) name <- "Invictus" url <- URLencode(sprintf("https://en.wikisource.org/w/api.php?action=parse&prop=text&page=%s&format=json", name)) res <- read_html(content(GET(url))$parse$text[[1]]) string <- iconv(xml_text(xml_find_all(res, "//p"), trim=TRUE), "latin1", "ASCII", sub=" ")[1:2] (string <- trimws(gsub(''//n|//s{3,}'', '' '', paste(string, collapse=" ")))) # [1] "Out of the night that covers me, Black as the pit from pole to pole, I thank whatever gods may be For my unconquerable soul. In the fell clutch of circumstance I have not winced nor cried aloud. Under the bludgeonings of chance My head is bloody, but unbow''d. Beyond this place of wrath and tears Looms but the Horror of the shade, And yet the menace of the years Finds and shall find me unafraid. It matters not how strait the gate, How charged with punishments the scroll, I am the master of my fate: I am the captain of my soul."

Algunos intentos de usar las funciones antes mencionadas

## Using these I can get left/right/center justified text but not ## justified like in other text editing programs or newspapers. width <- 30 cat(paste(strwrap(string, width=width), collapse=''/n'')) ## Or with cat tokens <- strsplit(string, ''//s+'')[[1]] # tokenise to pass to cat out <- capture.output(cat(tokens, fill=width, sep=" ")) # strings <= width chars cat(paste(out, collapse=''/n''))


Bueno, si no hay una forma incorporada esto funciona lo suficientemente bien para mis propósitos. Gracias por los comentarios anteriores acerca de cómo usar el estilo html también.

justify <- function(string, width=getOption(''width''), fill=c(''random'', ''right'', ''left'')) { strs <- strwrap(string, width=width) paste(fill_spaces(strs, width, match.arg(fill)), collapse="/n") } fill_spaces <- function(lines, width, fill) { tokens <- strsplit(lines, ''//s+'') res <- lapply(head(tokens, -1L), function(x) { nspace <- length(x)-1L extra <- width - sum(nchar(x)) - nspace reps <- extra %/% nspace extra <- extra %% nspace times <- rep.int(if (reps>0) reps+1L else 1L, nspace) if (extra > 0) { if (fill==''right'') times[1:extra] <- times[1:extra]+1L else if (fill==''left'') times[(nspace-extra+1L):nspace] <- times[(nspace-extra+1L):nspace]+1L else times[inds] <- times[(inds <- sample(nspace, extra))]+1L } spaces <- c('''', unlist(lapply(times, formatC, x='' '', digits=NULL))) paste(c(rbind(spaces, x)), collapse='''') }) c(res, paste(tail(tokens, 1L)[[1]], collapse = '' '')) } cat(justify(string, width=40)) # Out of the night that covers me, Black # as the pit from pole to pole, I thank # whatever gods may be For my # unconquerable soul. In the fell clutch # of circumstance I have not winced nor # cried aloud. Under the bludgeonings of # chance My head is bloody, but unbow''d. # Beyond this place of wrath and tears # Looms but the Horror of the shade, And # yet the menace of the years Finds and # shall find me unafraid. It matters not # how strait the gate, How charged with # punishments the scroll, I am the master # of my fate: I am the captain of my # soul.