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