删除URL中的引号和空格

时间:2014-04-08 03:31:25

标签: regex r url

我是初学者,所以请尽量保持简单。

我正在尝试构建一个用于获取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。

我愿意接受我的方法,但请将它们保持在最基本的水平。

2 个答案:

答案 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)

您可以使用以下regex轻松删除引号:

'\"'并替换为''并激活g修饰符以替换所有匹配项。

演示:http://regex101.com/r/kV3kO0