es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Incluyendo un espacio entre dos variables en un bucle for en R Markdown (salida en formato PDF).

Estoy intentando crear algunos estímulos utilizando R Markdown, y para cada prueba quiero extraer dos valores de dos columnas (L_Prob y R_Prob) en un marco de datos (D1) y presentarlos uno al lado del otro. Tengo la intención de generar un archivo de R Markdown en formato PDF. También tengo la intención de incluir algunos espacios entre los dos valores, sin embargo, tengo dificultades.

Mi código actual se ve así:

“`{r, echo = F, comment=NA, results=’asis’}
D1= data.frame(L_Prob=c("a+b","b+c","c+d"),R_Prob=c("d+e","e+f","f+g"))

for (i in 1:nrow(D1)){
a = D1%>% select(L_Prob) %>% slice(i) %>% pull
b = D1%>% select(R_Prob) %>% slice(i) %>% pull
cat(a," ",b)
cat("\n")
cat("¿Por qué eliges este problema?")
cat("\n")
cat("Parece ser más fácil de resolver")
cat("\n")
cat("Prefiero problemas de este tipo de números")
cat("\n")
cat("Sin ninguna razón en particular")
cat("\n")
cat("Otro__________")
cat("\n\n\n\n\n") # Insertar salto de página
}
“`

La salida se ve como “a+b b+c” sin espacio entre ellos. Lo que quiero que se vea es:

a+b             b+c

He intentado cat(a, " ", b), pero no funciona. No estoy seguro de cómo puedo hacerlo y agradecería cualquier sugerencia.

Dado que estoy generando un archivo PDF, mi comprensión es que no puedo alinear a la izquierda a “a” y alinear a la derecha a “b”, pero corríjame si estoy equivocado.

¡Gracias de antemano por su ayuda!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para agregar espacios entre a y b, puedes usar la función paste(). Dentro del ciclo for, modifica la función cat() para incluir paste() de la siguiente manera:

    cat(paste(a, "        ", b, sep = ""))
    

    Esto insertará varios espacios entre los valores de a y b.

    Si deseas ajustar la alineación de los valores, puedes usar la función sprintf() con el formato adecuado. Por ejemplo, para alinear a la izquierda a y a la derecha b, puedes modificar la función cat() de la siguiente manera:

    cat(sprintf("%-10s    %10s", a, b))
    

    Aquí %10s alinea a la derecha b y -10s alinea a la izquierda a. Puedes ajustar los números para modificar el espacio entre las columnas.

Comments are closed.