Agregar matriz al encabezado multilínea en R
Frecuentes
Visto 371 veces
1
Tengo un archivo de encabezado con exactamente 4 filas en un formato de ancho fijo (guardado con la función write.matrix del paquete MASS).
Ahora quiero crear una nueva matriz con el archivo de encabezado que creé anteriormente. ¿Es posible en R agregar un encabezado multilínea fijo (por ejemplo, como "texto") a una matriz?
Un ejemplo: tengo un encabezado como
AB
CDEF 123456
GHIJK 789 101112
LMNOP
Y luego quiero crear una matriz con fecha en la primera columna y luego los datos (de otro archivo) en la segunda columna como
892201 0.1
892202 0.8
y así. Nota: Tiene que ser el formato descrito, porque el programa solo lee el formato de ancho fijo explicado anteriormente.
1 Respuestas
2
Puede escribir el segundo conjunto de datos en el archivo existente usando el write.table()
funcionar con el append = TRUE
argumento.
si tengo archivo foo.txt
con el encabezado que muestra, puedo agregar algunas fechas y otros datos a ese archivo creando primero el objeto de datos que quiero agregar:
dat <- data.frame(dates = Sys.Date() + 0:4, data = seq(0.1, 0.5, by = 0.1))
> dat
dates data
1 2012-06-12 0.1
2 2012-06-13 0.2
3 2012-06-14 0.3
4 2012-06-15 0.4
5 2012-06-16 0.5
Se agregará lo siguiente dat
sin encabezados extraños ni nombres de fila en el archivo de encabezado existente
write.table(dat, "foo.txt", append = TRUE, col.names = FALSE, row.names = FALSE)
foo.txt
ahora se ve así:
$ cat foo.txt
AB
CDEF 123456
GHIJK 789 101112
LMNOP
2012-06-12 0.1
2012-06-13 0.2
2012-06-14 0.3
2012-06-15 0.4
2012-06-16 0.5
Respondido el 12 de junio de 12 a las 09:06
Eso es exactamente lo que estaba buscando. Realmente no entendí cómo funciona la función "agregar". ¡¡Gracias!! - user1439894
@ user1439894 De nada. Si está satisfecho con la Respuesta, considere aceptarla para que otros sepan que este problema se resolvió correctamente y para mejorar el recurso SO general. Consulte la sección Cómo preguntar de las preguntas frecuentes para obtener más información: FAQ - gavin simpson
Sí, por supuesto. Lo siento, soy nuevo en esto, así que no conocía esta característica. - user1439894
@ user1439894 No hay necesidad de disculparse y no hay obligación de aceptar una respuesta en SO. Solo hazlo cuando una Respuesta realmente te haya ayudado. Puede esperar unos días si desea ver si obtiene otras Respuestas mejores, etc. Incluso puede cambiar de opinión si aparece una mejor después. - gavin simpson
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas r header matrix multiline fixed-width or haz tu propia pregunta.
Sería útil ver el código utilizado para producir el encabezado. He asumido que el encabezado es exactamente como muestra en la Pregunta, copié y pegué eso en mi archivo y luego ejecuté el código que muestro en mi Respuesta contra ese archivo. - Gavin Simpson
El encabezado está programado con la función readLines(textConnection)). El código es así: fmtlines <- readLines(textConnection("...")) - user1439894
Quise decir mostrar el código que usaste para crearlo (el código que usa
write.matrix()
). De todos modos, no importa ahora si mi Respuesta te ayudó a resolver el problema. - Gavin Simpson