2017-09-15 67 views
0

我有這段代碼嘗試從Kitco網站獲取黃金的每日現貨價格。似乎無法識別數據

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] 

我似乎無法確定「mana」變量是什麼。這不是一個數據幀,而我似乎無法把它做成一個數據框鍵入

mala <- as_data_frame(mana) 

甚至

mala <- as_data_frame(mana[1]) 

我缺少什麼?

+2

'as.data.frame(法力)'? – PoGibas

+1

你也可能想引用'mata [32]'作爲'mata [[32]]'將它返回到列表之外。 – Mako212

+0

那麼爲什麼as.data.frame(mana)可以工作,但as_data_frame不起作用? as.data.frame(法力)工程,順便說一句。謝謝!你可以將它作爲答案發布,以便我可以將它作爲答案投票嗎? –

回答

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接受 「任何ř對象」 和as_data.frame只接受矩陣或數據幀。如果你喜歡整潔的方法和as_data_frame,你可以這樣做:

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

在這裏,我們提取的列表,現在我們的對象類是數據幀,我們可以把它管道到as_data_frame

相關問題