Estoy tratando de usar la siguiente sintaxis para obtener la información de ocupación de la página de Wikipedia de George Clooney. Eventualmente me gustaría que haya un ciclo para obtener datos sobre las ocupaciones de varias personalidades.La discusión es de longitud cero
Sin embargo, me sale el siguiente problema al ejecutar el código de abajo:
Error in if (symbol != "role") symbol = NULL : argument is of length zero
No estoy seguro de por qué esto sigue llegando hacia arriba.
library(XML)
library(plyr)
url = 'http://en.wikipedia.org/wiki/George_Clooney'
# don't forget to parse the HTML, doh!
doc = htmlParse(url)
# get every link in a table cell:
links = getNodeSet(doc, '//table/tr/td')
# make a data.frame for each node with non-blank text, link, and 'title' attribute:
df = ldply(links, function(x) {
text = xmlValue(x)
if (text=='') text=NULL
symbol = xmlGetAttr(x, 'class')
if (symbol!='role') symbol=NULL
if(!is.null(text) & !is.null(symbol))
data.frame(symbol, text) })
Consejo de depuración: http://stackoverflow.com/a/5156351/636656. Específicamente, pruebe 'options (error = recover)' aquí. –
es muy probable que 'symbol' sea' NULL'. Vea lo que sucede con 'if (NULL! =" Role ") print ('test')'. Algo así debería funcionar, aunque no ejecuté tu código: 'if (! Is.null (symbol) && symbol! = 'Role') symbol <- NULL' – GSee
Usa' col.names = my_column_names' en kable () con 'my_column_names' siendo el vector de caracteres de tus nombres deseados, ¡para mí funcionó! –