2017-04-16 70 views
2

我想下載從財政部網站上的10年期聯邦債券孳息:https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yield刮聯邦債收益率表從財政部網站

要分析上面的網頁,獲取最新的10年期國債收益率,我曾經跟隨這裏提供的說明: Parsing 10-year federal note yield from the website

library(httr) 
URL = "https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yield" 

urldata <- GET(URL) 
data <- readHTMLTable(rawToChar(urldata$content), 
         stringsAsFactors = FALSE) 

data <- as.data.frame((data[69])) 
names(data) <- gsub("NULL.","", names(data)) # Take out "NULL." 

但它不再起作用。

任何思考什麼可能是錯誤的或其他建議?

+0

我無法訪問網站,它說「發生了意外錯誤」。如果你有同樣的問題,你將無法從中提取數據。 –

+0

@FernandoIrarrázavalG我可以訪問它,這裏是公正的情況下直接鏈接 Oposum

+0

也沒有工作,這是我得到:https://snag.gy/tQl2ya.jpg –

回答

3

這並不回答,爲什麼你的代碼不再適用於具體的問題。這是一個使用rvest包的替代方案,可以簡化許多刮擦操作。特別是下面,表格的選擇是通過class id CSS選擇器.t-chart進行的。這使得它更容忍頁面格式更改。與運算符%>%的鏈接使得代碼非常緊湊。

library(rvest) 
t_url = "https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yield" 
rates <- read_html(t_url) %>% 
    html_node(".t-chart") %>% 
    html_table() 

rates 

#  Date 1 mo 3 mo 6 mo 1 yr 2 yr 3 yr 5 yr 7 yr 10 yr 20 yr 30 yr 
# 1 04/03/17 0.73 0.79 0.92 1.02 1.24 1.47 1.88 2.16 2.35 2.71 2.98 
# 2 04/04/17 0.77 0.79 0.92 1.03 1.25 1.47 1.88 2.16 2.36 2.72 2.99 
# 3 04/05/17 0.77 0.80 0.93 1.03 1.24 1.44 1.85 2.14 2.34 2.71 2.98 
# 4 04/06/17 0.78 0.79 0.94 1.05 1.24 1.45 1.87 2.15 2.34 2.72 2.99 
# 5 04/07/17 0.77 0.82 0.95 1.08 1.29 1.52 1.92 2.20 2.38 2.74 3.00 
# 6 04/10/17 0.77 0.82 0.97 1.07 1.29 1.52 1.91 2.18 2.37 2.72 2.99 
# 7 04/11/17 0.74 0.82 0.94 1.05 1.24 1.45 1.84 2.11 2.32 2.67 2.93 
# 8 04/12/17 0.77 0.81 0.95 1.04 1.24 1.44 1.81 2.09 2.28 2.65 2.92 
# 9 04/13/17 0.76 0.81 0.94 1.03 1.21 1.40 1.77 2.05 2.24 2.62 2.89 
+0

非常好,非常感謝 – Oposum