2017-09-15 2 views
0

Ich habe diesen Code, um den täglichen Spotpreis für Gold von der Kitco-Website zu erhalten.Ich kann die Daten nicht identifizieren

library("rvest") 
library("dplyr") 
library("tidyr") 
library("tibble") 
maya <- read_html("http://www.kitco.com/market/") 
mara <- html_nodes(maya, "table") 
mata <- html_table(mara, fill=TRUE) 
mana <- mata[32] 

Ich kann nicht scheinen zu identifizieren, was die "Mana" Variable ist. Es ist kein Datenrahmen, und ich kann es nicht in einen Datenrahmen zu machen scheint von

mala <- as_data_frame(mana) 

eingeben oder sogar

mala <- as_data_frame(mana[1]) 

Was bin ich?

+2

'as.data.frame (Mana) '? – PoGibas

+1

Sie möchten wahrscheinlich auch 'mata [32]' als 'mata [[32]]' referenzieren, um es außerhalb der Liste zurückzugeben. – Mako212

+0

Also warum sollte as.data.frame (mana) funktionieren, aber as_data_frame funktioniert nicht? as.data.frame (mana) funktioniert, btw. Vielen Dank! Kannst du es als Antwort posten, damit ich es als Antwort wählen kann? –

Antwort

2
library(rvest) 
library(tidyverse) 
"http://www.kitco.com/market/" %>% 
    read_html() %>% 
    html_nodes("table") %>% 
    html_table(fill = TRUE) %>% 
    .[32] %>% 
    as.data.frame() 

enter image description here

as.data.frame akzeptiert "jedes R Objekt" as_data.frame und akzeptiert nur Matrices oder Datenrahmen. Wenn Sie ordentlich Ansatz bevorzugen und as_data_frame, können Sie dies tun:

... 
    .[[32]] %>% 
    as_data_frame() 

Hier extrahiert wir Liste und jetzt unsere Objektklasse ist Datenrahmen und wir können eine Pipe an as_data_frame

Verwandte Themen