gpt4 book ai didi

r - 简单的 R 任务 : divide specified columns by 1000 at specified rows

转载 作者:行者123 更新时间:2023-12-04 09:55:00 28 4
gpt4 key购买 nike

我有一个我想要处理的 OHLC 股票报价数组。

             Open      High      Low        Close         Volume
2003-01-05 6111.01 6145.00 6102.70 6145.00 956
2003-01-08 6145.00 6190.00 5960.00 6135.05 8771
2003-01-09 6120.01 6250.00 6120.00 6225.00 10579
2003-01-10 6240.00 6285.00 6225.10 6261.00 8882
2003-01-13 6231.00 6325.00 6231.00 6270.00 8015
2003-01-14 6279.00 6295.00 6180.01 6190.00 8461

该公司在给定日期进行了拆分,因此我需要将该日期之前的所有打开、最高、最低、关闭列除以 1000。
由于我现在正在学习 R 基础知识,我想为此任务找出不错的 R 解决方案。
我设法编写的最好的一段代码是(无法找到如何应用于给定的 cols,stock$Open 不起作用):
apply(stock, 2, function(stock) stock/((index(stock)<"2007-07-20")*1000) )

然而,结果很奇怪,很多都是inf:
2006-10-26       Inf       Inf       Inf        Inf         Inf
2006-10-27 Inf Inf Inf Inf Inf
2006-10-30 Inf Inf Inf Inf Inf
2006-10-31 Inf Inf Inf Inf Inf
2006-11-01 Inf Inf Inf Inf Inf
2006-11-02 Inf Inf Inf Inf Inf
2006-11-03 Inf Inf Inf Inf Inf
2006-11-07 Inf Inf Inf Inf Inf

提前谢谢了!

最佳答案

我不熟悉 OHLC array s,但假设 index 方法有效:

relevantRows<-index(stock) < "2007-07-20"

一旦你有一个包含所有相关行的向量(实际上是一个逻辑向量,它为应该更改的行保存 TRUE),你可以像这样简单地使用它:
stock$Open[relevantRows]<-stock$Open[relevantRows]/1000

有可能(取决于 OHLC array s 的内部结构),即使这样也有效:
stock[relevantRows, c("Open", "High", "Low", "Close")]<-stock[relevantRows, c("Open", "High", "Low", "Close")]/1000

关于r - 简单的 R 任务 : divide specified columns by 1000 at specified rows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7766708/

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