首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R规划随机选股

R规划随机选股
EN

Stack Overflow用户
提问于 2015-09-28 22:32:52
回答 1查看 240关注 0票数 0

我陷入了R编程的问题中。我的目标是从包含30只股票的瑞士市场指数中随机选择2只股票。

到目前为止,我用以下代码解决了随机挑选两只股票的问题:

代码语言:javascript
运行
复制
SMI_components <- cbind("ABB (ABBN.VX)", "ADECCO (ADEN.VX)", "ACTELION (ATLN.VX)", "JULIUS BAER GRP (BAER.VX)", "RICHEMONT (CFR.VX)", "CREDIT SUISSE (CSGN.VX)", "GEBERIT (GEBN.VX)", "GIVAUDAN (GIVN.VX)", "HOLCIM (HOLN.VX)", "NESTLE (NESN.VX)", "NOVARTIS (NOVN.VX)", "TRANSOCEAN (RIGN.VX)", "ROCHE HOLDING (ROG.VX)", "SWISSCOM (SCMN.VX)", "SGS (SGSN.VX)", "SWISS RE (SREN.VX)", "SYNGENTA (SYNN.VX)", "UBS (UBSG.VX)", "SWATCH GROUP (UHR.VX)", "ZURICH INSURANCE GROUP (ZURN.VX)")

 for(i in 1:1){
 print(sample(SMI_components, 2))
}

如果我想从这两只随机挑选的股票中下载历史数据,我该如何继续我的代码?例如,随机选择为:

“诺华(NOVN.VX)”和“苏黎世保险集团(ZURN.VX)”

如何继续下去……

代码语言:javascript
运行
复制
SMI_NOVARTIS <- yahooSeries ("NOVN.VX", from = "2005-01-01", to = "2015-07-30", frequency = "daily")

SMI_ZURICH <- yahooSeries ("ZURN.VX", from = "2005-01-01", to = "2015-07-30", frequency = "daily")

我真的很感谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2015-09-28 22:38:10

print输出到控制台,但不存储任何内容。所以要做的第一件事就是将sample的输出赋给一个变量。

代码语言:javascript
运行
复制
my_picks <- sample(SMI_components, 2)

提取括号之间的滚动符号(请参阅下面的注释):

代码语言:javascript
运行
复制
my_picks <- sub(".*\\((.*)\\).*", "\\1", my_picks)

然后可以使用lapply为my_picks中的每个值调用一个函数(yahooSeries)。

代码语言:javascript
运行
复制
series_list <- lapply(my_picks, yahooSeries, from = "2005-01-01", to = "2015-07-30", frequency = "daily")

然后,您将获得列表中的输出。对于my_picks的第一个值,series_list[[1]]的输出为yahooSeries,对于第二个值,输出为series_list[[2]]

最后,我不确定为什么要为单次迭代for循环而烦恼,但您并不需要这样做

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32825609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档