首页 > 解决方案 > r 中的 api - parse_url(url) 中的错误:length(url) == 1 is not TRUE

问题描述


你好。
我正在尝试使用此功能提取一些数据...

orats <- function(data="cores/general",tickers,token){
  t1 = paste(tickers,sep=",")
  x1 = GET(paste("https://api.orats.io/data/",data,"?ticker=",t1,sep=""),add_headers(Authorization=token))
  x2 = content(x1)[[1]]
  data.frame(t(sapply(x2, function(x) x[1:max(lengths(x2))])))
}


一切都很好。但是,对于 tickers 参数,我必须将其写为:

tickers <- "AAPL,MSFT"

每当我尝试使用分隔字符的向量时,它都不起作用。例如:

tickers <- c("AAPL","MSFT")
~runs code~

Error in parse_url(url) : length(url) == 1 is not TRUE 


我已经阅读了大多数包含此错误的帖子,但我还没有找到可行的解决方案。为了灵活性,我想知道如何使这个函数与我的第二个例子一起工作[即。股票代码<-c("AAPL","MSFT")]。
谢谢。

标签: r

解决方案


不要使用 sep 而是在粘贴中折叠:

tickers <- c("AAPL", "MSFT")
t1 = paste(tickers, sep = ",")
t1
[1] "AAPL" "MSFT"

t1 = paste(tickers, collapse = ",")
t1
[1] "AAPL,MSFT"

推荐阅读