## Real yield real <- "http://www.treasury.gov/resource-center/data-chart-center/interest-rates/Datasets/real_yield.xml" ## Nominal yield nominal <- "http://www.treasury.gov/resource-center/data-chart-center/interest-rates/Datasets/yield.xml" getlast <- function(x, name) { a <- x[name] b <- tail(a, 1) bb <- b[[1]] as.numeric(xmlValue(bb)) } yield <- function(type = c("nominal", "real")) { library(XML) type <- match.arg(type) switch(type, real = { xml <- xmlParse(real) y5 <- getlast(xml, "//TC_5YEAR") y10 <- getlast(xml, "//TC_10YEAR") y30 <- getlast(xml, "//TC_30YEAR") }, nominal = { xml <- xmlParse(nominal) y5 <- getlast(xml, "//BC_5YEAR") y10 <- getlast(xml, "//BC_10YEAR") y30 <- getlast(xml, "//BC_30YEAR") }) list(y5 = y5, y10 = y10, y30 = y30) } inflation <- function() { nom <- yield("nominal") real <- yield("real") cat(sprintf("5-year Inflation: %.2f%%\n", nom$y5 - real$y5)) cat(sprintf("10-year Inflation: %.2f%%\n", nom$y10 - real$y10)) cat(sprintf("30-year Inflation: %.2f%%\n", nom$y30 - real$y30)) }