Hola Adolfo,
En la pregunta 4, el código base en el archivo ufo-analysis.sh no devuelve un dataframe. El problema es que no se están eliminando correctamente los códigos html, i.e. el texto entre los signos <>. También se debe eliminar el salto de línea marcado como "^M" (o bien, \r) y agregar saltos de línea para que sea un data fame. Yo lo resolví de esta manera, pero tal vez se pueda hacer de forma más sencilla:
unction extract_table() {
# get table
sed -n '/<TABLE .>/,/</TABLE>/p' $1 |
# Fill missings with NA's
sed 's/<[BR]>/NA/g' |
# Remove HTML code
sed 's/<[^>]>//g' |
# Remove ^M delimiters
sed 's/\r//g' |
# Remove empty lines
awk '/.+/ {print $0}' |
# Add pipes to lines that should be the end of lines
awk '{if (NR %7 == 0) {print $0"|"} else {print $0}}' |
# Paste all lines together in one line with tabs as separator
sed -e :a -e '$!N; s/\n/\t/; ta' |
# Separate lines using the added pipe
sed 's/|/\n/g' |
# Remove tabs at the begining of the lines
sed 's/^\t//g' |
# Remove emplty lines.
awk '/.+/ {print $0}'
}
Faltaría eliminar los encabezados duplicados en la parte de limpieza.
Adicionalmente, en la función calculate_stats se pide sacar conteos por color pero ésta no es una variable de los datos. ¿Lo cambiamos por ciudad?
¡Gracias!
Hola Adolfo,
En la pregunta 4, el código base en el archivo ufo-analysis.sh no devuelve un dataframe. El problema es que no se están eliminando correctamente los códigos html, i.e. el texto entre los signos <>. También se debe eliminar el salto de línea marcado como "^M" (o bien, \r) y agregar saltos de línea para que sea un data fame. Yo lo resolví de esta manera, pero tal vez se pueda hacer de forma más sencilla:
unction extract_table() {
# get table
sed -n '/<TABLE .>/,/</TABLE>/p' $1 |
# Fill missings with NA's
sed 's/<[BR]>/NA/g' |
# Remove HTML code
sed 's/<[^>]>//g' |
# Remove ^M delimiters
sed 's/\r//g' |
# Remove empty lines
awk '/.+/ {print $0}' |
# Add pipes to lines that should be the end of lines
awk '{if (NR %7 == 0) {print $0"|"} else {print $0}}' |
# Paste all lines together in one line with tabs as separator
sed -e :a -e '$!N; s/\n/\t/; ta' |
# Separate lines using the added pipe
sed 's/|/\n/g' |
# Remove tabs at the begining of the lines
sed 's/^\t//g' |
# Remove emplty lines.
awk '/.+/ {print $0}'
}
Faltaría eliminar los encabezados duplicados en la parte de limpieza.
Adicionalmente, en la función calculate_stats se pide sacar conteos por color pero ésta no es una variable de los datos. ¿Lo cambiamos por ciudad?
¡Gracias!