gpt4 book ai didi

r - 使用 quantmod 包编写一个函数来获取最后交易的股票价格

转载 作者:行者123 更新时间:2023-12-01 22:48:51 25 4
gpt4 key购买 nike

library(quantmod)

last_price<-function(i){
for (i in stock_list)
price<-getQuote(i)
return(price$Last)
}

stock_list<-c("AAPL","TSLA")

last_price(stock_list)

大家好,只是有一个函数可以从定义的股票列表中下载最后的交易价格,在这种情况下,理想情况下,该函数将返回 APPLE 和 TESLA 的最后交易价格,但是,只有 APPLE 的最后交易价格返回,很确定我编写函数的方式有问题,介意帮我解决这个问题吗?如果我想让我的函数在列表中循环,我是否遗漏了什么?非常感谢。

最佳答案

因为它是一个for 循环,并且price 在每次迭代中更新,所以它只返回最后一个。我们需要创建一个 list 来存储输出。此外,函数的参数应该匹配。

last_price <- function(stock_list){
out <- vector('list', length(stock_list))
names(out) <- stock_list
for (stock in stock_list)
{
price_last<-getQuote(stock)$Last
out[[stock]] <- price_last
}
return(out)
}

-测试

> price_list <- last_price(stock_list)
> str(price_list)
List of 2
$ AAPL: num 142
$ TSLA: num 179

无需循环,因为 getQuote 可以采用值向量

> getQuote(stock_list)
Trade Time Last Change % Change Open High Low Volume
AAPL 2022-12-09 16:00:04 142.16 -0.4899902 -0.3434912 142.34 145.56 140.91 76097011
TSLA 2022-12-09 16:00:04 179.05 5.6100006 3.2345480 173.84 182.50 173.36 104872336
> getQuote(stock_list)$Last
[1] 142.16 179.05

关于r - 使用 quantmod 包编写一个函数来获取最后交易的股票价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74763268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com