Skip to content

Assistance with httr package with R version 3.3.0

6 messages · Jim Lemon, Luca Meyer, Bob Rudis +1 more

#
Hello,

I am trying to run a code I have been using for a few years now after
downloading the new R version 3.3.0 and I get the following error:
https://docs.google.com/spreadsheets/d/102-jJ7x1YfIe4Kkvb9olQ4chQ_TS90jxoU0vAbFZewc/pubhtml?gid=0&single=true
"
+   r <- GET(url)
+   html <- content(r)
+   sheets <- readHTMLTable(html, header=FALSE, stringsAsFactors=FALSE)
+   df <- sheets[[sheet]]
+   dfClean <- function(df){
+     nms <- t(df[1,])
+     names(df) <- nms
+     df <- df[-1,-1]
+     row.names(df) <- seq(1,nrow(df))
+     df
+   }
+   dfClean(df)
+ }
Error in (function (classes, fdef, mtable)  :
  unable to find an inherited method for function ?readHTMLTable? for
signature ?"xml_document"?
Can anyone suggest a solution to it?

Thanks,

Luca
#
Hi Luca,
The function readHTMLtable is in the XML package, not httr. Perhaps
that is the problem as I don't see a dependency in httr for XML
(although xml2 is suggested).

Jim
On Tue, May 10, 2016 at 2:58 PM, Luca Meyer <lucam1968 at gmail.com> wrote:
#
Hi Jim,

Thank you for your suggestion. I have actually tried to upload XML and xml2
but nothing changed...any other suggestion?

Kind regards,

Luca
https://docs.google.com/spreadsheets/d/102-jJ7x1YfIe4Kkvb9olQ4chQ_TS90jxoU0vAbFZewc/pubhtml?gid=0&single=true
"
+   r <- GET(url)
+   html <- content(r)
+   sheets <- readHTMLTable(html, header=FALSE, stringsAsFactors=FALSE)
+   df <- sheets[[sheet]]
+   dfClean <- function(df){
+     nms <- t(df[1,])
+     names(df) <- nms
+     df <- df[-1,-1]
+     row.names(df) <- seq(1,nrow(df))
+     df
+   }
+   dfClean(df)
+ }
Error in (function (classes, fdef, mtable)  :
  unable to find an inherited method for function ?readHTMLTable? for
signature ?"xml_document"?
2016-05-10 8:52 GMT+02:00 Jim Lemon <drjimlemon at gmail.com>:

  
  
#
I don't fully remember, but I doubt httr::content() ever returned a
character vector without using the `as="text"` parameter. Try
switching that line to:

    html <- content(r, as="text")
On Tue, May 10, 2016 at 3:27 AM, Luca Meyer <lucam1968 at gmail.com> wrote:
#
David Winsemius
Alameda, CA, USA
#
Wrapping as.character around it also retrieves a version, although the first line was interpreted as a header and the the data was all character:
'data.frame':	3 obs. of  6 variables:
 $ 91   : chr  "0,9" "" "34"
 $ 90,2 : chr  "16,7" "" "-96"
 $ 0,8  : chr  "9,018" "" "-66"
 $ 0,008: chr  "" "" "-128"
 $ 10,2 : chr  "" "" ""
 $ 4,896: chr  "" "" ""
David Winsemius
Alameda, CA, USA