我是初学者,所以请尽量保持简单。
我正在尝试构建一个用于获取Yahoo Quote数据的URL。在尝试'#34; R in Nutshell"脚本,我转向自己组装。这是我生成的URL的示例:
"http://ichart.finance.yahoo.com/table.csv? s=XLK &a= 2 &b= 24 &c= 2014 &e= 04 &d= 07 &f= 2014"
我不确定如何消除此输出中的引号和空格。我确实设法用factor()
摆脱引号,但后来无法摆脱这些因素。 Gsub
不喜欢带或不带\
的引号。此外,尝试使用空格的正则表达式不喜欢[ ]
s。
我愿意接受我的方法,但请将它们保持在最基本的水平。
答案 0 :(得分:1)
请勿使用paste()
来创建网址。而是使用一个函数,比如
httr::modify_url
专门设计用于创建它们:
library(httr)
base_url <- "http://ichart.finance.yahoo.com/table.csv"
modify_url(base_url, query = list(
s = "XLK",
a = 2, # start month
b = 24, # start day
c = 2014, # start year
d = 04, # end month
e = 07, # end day
f = 2014 # end year
))
## [1] "http://ichart.finance.yahoo.com/table.csv?s=XLK&a=2&b=24&c=2014&d=4&e=7&f=2014"
这也将负责正确转义需要它的字符。 更好的是,您可以将其转换为记录自身的功能 通过使用命名参数:
library(lubridate)
yahoo_stock <- function(stock, start, end) {
start <- ymd(start)
end <- ymd(end)
modify_url(base_url,
query = list(
s = "XLK",
a = month(start), b = mday(start), c = year(start),
d = month(end), e = mday(end), f = year(end)
)
)
}
yahoo_stock("XLK", "2014-02-24", "2014-07-04")
## [1] "http://ichart.finance.yahoo.com/table.csv?s=XLK&a=2&b=24&c=2014&d=7&e=4&f=2014"
答案 1 :(得分:0)