[R-es] htmlParse - duda con NA
Manuel J. Sánchez Franco
majesus en us.es
Jue Mar 12 15:40:00 CET 2015
Estimados colegas,
Soy nuevo en uso de R. Requiero por ello amablemente de su ayuda. Estoy
realizando una captación de datos de una página web html de comentarios
turísticos relativos a 10 hoteles. El código que parcialmente empleo es
el siguiente:
(...)
for (i in seq_len(10)){
txt <- getURL(url=baseURL[i], followlocation = TRUE, encoding="UTF-8")
# parse html
text <- htmlParse(txt, asText=TRUE)
t1 <- xpathApply(text, "//span[@class='hotel_name']")
t2 <- xpathApply(text, "//ul[@class='guest_list']")
t3 <- xpathApply(text, "//DIV[@CLASS='REVIEW']")
o1 <- sapply(t1, function(x)unname(xmlSApply(x, xmlValue)))
o2 <- sapply(t2, function(x)unname(xmlSApply(x, xmlValue)))
o3 <- sapply(t3, function(x)unname(xmlSApply(x, xmlValue)))
ot.t <- cbind(o1,o2,o3)
(...)
}
El problema surge porque dentro de la etiqueta //DIV[@CLASS='REVIEW']
existen dos subapartados:
-comentarios positivos (<p class="POS">).
-comentarios negativos (<p class="NEG">).
código fuente aclaratorio:
<div class="REVIEW">
<p class="POS">La amabilidad</p><p class="NEG">La bañera</p>
</div>
Le señalo además que cuando no hay comentarios positivos o negativos el
código fuente html no muestra <p class="pos"> o <p class="neg">. Ahí
está la clave del problema. El huésped no siempre deja mensajes
positivos o negativos, de tal modo que cuando ejecuto la programación
que barre el código html, me desordena los comentarios realizados entre
huéspedes. Es decir, si el huésped 2 no realiza comentarios negativos y
el huésped 3 sí, los comentarios negativos del huésped 3 los asigna al
huésped 2.
En suma, necesitaría que me orientase para que en caso de ausencia de
comentarios positivos o negativos asignara un valor (NA) al huésped 2 en
cada tipo de comentario (positivo o negativo) ausente.
Espero su amable respuesta,
Manuel
--
_______________________________________________________
Manuel J. Sánchez Franco
Departamento de Administración de Empresas y Marketing
Facultad de Ciencias Económicas y Empresariales
Universidad de Sevilla
Avda. Ramón y Cajal, 1. 41018-SEVILLA (ESPAÑA)
Tf.- 95 455 75 42. Fax.- 95 455 69 89
[[alternative HTML version deleted]]
Más información sobre la lista de distribución R-help-es