Próbuję użyć następującej składni, aby uzyskać informacje o zawodzie na stronie wikipedii George'a Clooneya. W końcu chciałabym, żeby istniała pętla, by uzyskać dane na temat różnych zawodów osobowości.Argument ma długość zero
Jednak pojawia się następujący problem z uruchomieniem poniższy kod:
Error in if (symbol != "role") symbol = NULL : argument is of length zero
Nie jestem pewien, dlaczego ten utrzymuje się na wymyślanie.
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) })
Porada debugowania: http://stackoverflow.com/a/5156351/636656. W szczególności wypróbuj 'options (error = recover)' here. –
Problem jest najprawdopodobniej taki, że 'symbol' to' NULL'. Zobacz, co stanie się z 'if (NULL! =" Role ") print ('test')'. Coś takiego powinno zadziałać, chociaż nie uruchomiłem twojego kodu: 'if (! Is.null (symbol) && symbol! = 'Rola') symbol <- NULL' – GSee
Użyj' col.names = moje_kolumnowe_ nazwy' w kable () z 'my_column_names' będącym wektorem znaków twoich poszukiwanych nazw, dla mnie działało! –