【问题标题】:Parsing 10-year federal note yield from the website从网站解析 10 年期联邦票据收​​益率
【发布时间】:2017-09-02 07:02:46
【问题描述】:

通常,这是 R 中常用的下载 10 年期联邦票据收​​益率的方法

library(quantmod)
getSymbols("DGS10",src='FRED')
Fed<-last(DGS10)

问题是检索到的值比国库网站上可用的值早一天 https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yield

有没有办法解析上述网页以检索最近 10 年的国库券收益率?

【问题讨论】:

  • 您检查过rvest 包裹吗?

标签: html r quantmod


【解决方案1】:

rvest 是一个不错的选择,因为这些是渲染表。另一个是:

library(httr)
library(XML)

year = 2016
URL = paste0("https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yieldYear&year=",year)

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

# Finds html based list element w/daily data for the year
namesCheck <- c("Date","1 mo","3 mo","6 mo","1 yr","2 yr","3 yr","5 yr","7 yr","10 yr","20 yr","30 yr")
dataCheck <- NULL
for(i in 1:length(data)){
      dataCheck[[i]] <- names(data[[i]])
}

## Returns appropriate frame
dataCheck <- which(unlist(lapply(1:length(dataCheck), function(i) 
   (dataCheck[[i]] == namesCheck)[1])) == TRUE)

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

tail(data)

#         Date 1.mo 3.mo 6.mo 1.yr 2.yr 3.yr 5.yr 7.yr 10.yr 20.yr 30.yr
# 245 12/22/16 0.42 0.51 0.65 0.87 1.22 1.54 2.04 2.36  2.55  2.86  3.12
# 246 12/23/16 0.42 0.52 0.65 0.87 1.22 1.54 2.04 2.35  2.55  2.86  3.12
# 247 12/27/16 0.50 0.51 0.66 0.89 1.28 1.58 2.07 2.37  2.57  2.88  3.14
# 248 12/28/16 0.48 0.53 0.62 0.90 1.26 1.55 2.02 2.32  2.51  2.83  3.09
# 249 12/29/16 0.39 0.47 0.62 0.85 1.22 1.49 1.96 2.30  2.49  2.82  3.08
# 250 12/30/16 0.44 0.51 0.62 0.85 1.20 1.47 1.93 2.25  2.45  2.79  3.06

【讨论】:

  • 您好,我刚刚尝试使用您的上述代码提取数据,但它不再有效。几乎就像什么都没有加载一样。如果它仍然适合您,您介意尝试一下吗?
  • @Oposum 很抱歉花了这么长时间才回复您。以上是修改后的代码,用于获取所有年份的每日数据。
【解决方案2】:

作为替代方案,Quandl.com 通常会在 FRED 之前提供美国国债收益率的更新。数据很容易通过 Quandl 包导入 R。

【讨论】:

  • 截至今天,Quandl 似乎比财政部网站落后一天。请参阅上述修改以获取更新的当前数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-02
  • 1970-01-01
  • 2015-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多