Saltar al contenido

Omitir líneas de encabezado al importar

Te doy la bienvenida a nuestro sitio, ahora hallarás la solucíon de lo que andabas buscando.

Solución:

Aquí hay un enfoque que maneja comentarios intercalados además de “encabezados”

 FilePrint["test.txt"]
#comment
#comment
#comment
1 2 3
#c2
4 5 6
7 8 9
 ImportString[
     StringReplace[Import["test.txt", "Text"], 
         StartOfLine ~~ "#" ~~ Shortest[___] ~~ EndOfLine ~~ "n" -> ""], "Table"]

1, 2, 3, 4, 5, 6, 7, 8, 9

por supuesto, puedes inventar cualquier convención que quieras o incluso una mezcla, por ejemplo…

 `StartOfLine ~~ "#", "!", "%" ~~ ...`

otra variante:

 ImportString[[email protected][
      Select[StringSplit[Import["test.txt", "Text"], "n"],
            StringTake[#, 1] != "#" &], "n"], "Table"]

Incluso manejar comentarios de final de línea:

#comment
1 2 3
#c2
4 5 6  #note 1
7 8 9  
 ImportString[StringReplace[Import["test.txt", "Text"], 
      StartOfLine ~~ "#" ~~ Shortest[___] ~~ EndOfLine ~~ "n" -> "",
                     "#" ~~ Shortest[___] ~~ EndOfLine -> ""
                                       ], "Table"]

1, 2, 3, 4, 5, 6, 7, 8, 9

Probado en Windows, por cierto, esto podría necesitar algunos ajustes para manejar diferentes finales de línea en otros sistemas

Me gusta simplemente importarlo y luego filtrarlo.

data = Cases[Import["file", "Table"], _?NumberQ, ___];

que contendrá solo aquellas líneas que comiencen con un número.

El comando Importar admite una opción para ignorar las líneas de encabezado. En muchos casos, esta es la solución más fácil. Por ejemplo:

dataStats = Import["C:/data/stats.csv", "CSV", HeaderLines -> 4];

Comentarios y puntuaciones del post

Si te ha resultado de provecho este artículo, sería de mucha ayuda si lo compartieras con otros juniors y nos ayudes a extender nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *