字符变量作为函数的参数

发布于 2024-10-26 08:40:35 字数 915 浏览 4 评论 0原文

我下载财务数据的代码的一部分:

library(quantmod)

tickers <- c("XOM", "DIS")
stock1 <- getSymbols(tickers[1], from="2010-03-01", to="2011-02-28", auto.assign=F)
stock2 <- getSymbols(tickers[2], from="2010-03-01", to="2011-02-28", auto.assign=F)

pair <- merge(Ad(stock1), Ad(stock2), all=F)             # 'xts' object, merge adjusted close
pair.DF <- data.frame(pair)                              #  data frame

但我想调用这样的函数:

tickers <- function(x, y) {
stock1 <- getSymbols(x, from="2010-03-01", to="2011-02-28", auto.assign=F)
stock2 <- getSymbols(y, from="2010-03-01", to="2011-02-28", auto.assign=F)

pair <- merge(Ad(stock1), Ad(stock2), all=F)            
pair.DF <- data.frame(pair)       
}

然后:

tickers("XOM", "DIS")

或者类似的东西。但我得到的是不好的结果。在这种情况下,“x”和“y”不是数字,而是字符。 看起来似乎很容易,但是.. 感谢您的任何建议。

part of my code for downloading financial data:

library(quantmod)

tickers <- c("XOM", "DIS")
stock1 <- getSymbols(tickers[1], from="2010-03-01", to="2011-02-28", auto.assign=F)
stock2 <- getSymbols(tickers[2], from="2010-03-01", to="2011-02-28", auto.assign=F)

pair <- merge(Ad(stock1), Ad(stock2), all=F)             # 'xts' object, merge adjusted close
pair.DF <- data.frame(pair)                              #  data frame

But I want to call function like this:

tickers <- function(x, y) {
stock1 <- getSymbols(x, from="2010-03-01", to="2011-02-28", auto.assign=F)
stock2 <- getSymbols(y, from="2010-03-01", to="2011-02-28", auto.assign=F)

pair <- merge(Ad(stock1), Ad(stock2), all=F)            
pair.DF <- data.frame(pair)       
}

And then:

tickers("XOM", "DIS")

Or something similar. But what I get is bad result. In this case "x" and "y" aren´t numeric, but character.
It seems to be easy, but..
Thanks for any suggestions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

唠甜嗑 2024-11-02 08:40:35
tickers <- function(x, y) {
stock1 <- getSymbols(x, from="2010-03-01", to="2011-02-28", auto.assign=F)
stock2 <- getSymbols(y, from="2010-03-01", to="2011-02-28", auto.assign=F)

pair <- merge(Ad(stock1), Ad(stock2), all=F)            
pair.DF <- data.frame(pair)       
return(pair.DF)
}

只要你最后返回pair.DF,我就可以工作。这是你的问题吗?

我不认为字符类是问题所在:

class(tickers[1])==class("XOM")
TRUE
tickers <- function(x, y) {
stock1 <- getSymbols(x, from="2010-03-01", to="2011-02-28", auto.assign=F)
stock2 <- getSymbols(y, from="2010-03-01", to="2011-02-28", auto.assign=F)

pair <- merge(Ad(stock1), Ad(stock2), all=F)            
pair.DF <- data.frame(pair)       
return(pair.DF)
}

Works for me as long as you return the pair.DF at the end. Is that your problem?

I don't think the character class is the problem:

class(tickers[1])==class("XOM")
TRUE
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文