3 votos

¿Cómo insertar eficientemente una tabla de R en un documento de Word?

Estoy creando un documento de Word (.docx) el uso de LibreOffice. Debo incluir algunos resultados numéricos he calculado en R. Se ven como una simple tabla de números, con leyendas de texto de las filas y de columnas, y un par de NAs de aquí y de allí (una cadena que representa R la "falta de valor" constante).

Traté de guardar la tabla en el disco en una .formato csv, abrirlo en LibreOffice Calc, y copiar-pegar en Escritor. Que se insertó como un objeto OLE. Esto tiene varios problemas. En primer lugar, esto significa que el documento es grande y lento para abrir. Segundo, me temo que de los problemas de compatibilidad (no confío en que el objeto OLE funcionará bien cuando alguien lee esta cosa con la Palabra en lugar de LibreOffice). Tercero, los formatos de los números de la tabla de números (a la derecha ajustado), pero el NA valores como texto (izquierda-ajustado), y también todos los números en una fila que contiene un NA como texto. Así que es muy difícil de leer, ya que las columnas no se alinean.

Sé que podría crear una tabla en LibreOffice y copiar-pegar los números de allí. Pero hay una solución más rápida, tal vez alguna Palabra addon que automáticamente crea las tablas .csv, o tal vez una manera de salvar a la salida R como una tabla HTML (los formateará automáticamente cuando se pegan en LibreOffice)? Yo no se necesitan se ve siempre y cuando todo se alinea y se crea un nativo de la tabla de Word.

2voto

Josh Ramsey Puntos 11

Resultó que LibreOffice también tiene una funcionalidad especial de goma (duh). Me permite elegir "texto con formato" o "HTML" en lugar de "calc8" al pegar una tabla copiada de Calc. Todavía prefiero la solución de script, porque pegar especial utiliza el formato presente en Calc, donde filas con un NA están alineadas de izquierda y las filas con números sólo están alineadas derecha.

1voto

terdon Puntos 29629

Usted puede simplemente abrir la .csv en LibreOffice (escritor), seleccione todos y haga clic en el asistente para tablas cosita:

enter image description here

En mi caso, esto se tradujo en:

enter image description here


Como para el HTML manera, la siguiente secuencia de comandos PERL va a hacer lo que usted necesita (estoy asumiendo que usted está en Linux y tener un espacio separado .archivo csv):

#!/usr/bin/perl -w
print <<EOF;
<html>
<head>
<style>
TABLE{
border-collapse:collapse;

}
TD{
border:1px solid black;
padding:3px;
text-align:left;
}
</style>
</head>
<body>
<table>

EOF
while(<>){
    chomp; 
    print "<tr>";
    my @a=split(/\s+/); 
    print "<td>$_</td>" foreach (@a);
    print "</tr>\n";
}
print "</table></body></html>\n";

Guardar la secuencia de comandos como csv2html.pl y ejecutarlo así:

$ perl csv2html.pl input.csv > output.html

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: