gpt4 book ai didi

r - 将 r 中的特定值更改为滞后值

转载 作者:行者123 更新时间:2023-12-03 23:00:45 27 4
gpt4 key购买 nike

我有一个时间序列,其值在 Time = 23:00:00 时总是错误的,因此我需要更改这些值。

示例数据:

data <- data.table(
Time =c("20:47:00","20:52:00","21:25:00","22:25:00","23:00:00","01:02:00"),
Open = c(21.306,21.305,21.305,21.300,22.900,21.286),
TotalVolume = c(5,20,15,11,19,4)
)

看起来像:

   Time        Open     TotalVolume
1: 20:47:00 21.306 5
2: 20:52:00 21.305 20
3: 21:25:00 21.305 15
4: 22:25:00 21.300 11
5: 23:00:00 22.900 19
6: 01:02:00 21.286 4

我想将时间 = 23:00:00 时的开盘值替换为其之前的开盘值。应该是这样的:

   Time        Open     TotalVolume
1: 20:47:00 21.306 5
2: 20:52:00 21.305 20
3: 21:25:00 21.305 15
4: 22:25:00 21.300 11
5: 23:00:00 21.300 19
6: 01:02:00 21.286 4

我尝试使用滞后函数,但没有得到预期的结果:

data$Open[data$Time == "23:00:00"] <- lag(data,1)

data$Open[data$Time == "23:00:00"] <- lag(data$Open[data$Time == "23:00:00"],1)

最佳答案

> n <- which(data$Time=="23:00:00")
> data$Open[n] <- data$Open[n-1]
> data
Time Open TotalVolume
1: 20:47:00 21.306 5
2: 20:52:00 21.305 20
3: 21:25:00 21.305 15
4: 22:25:00 21.300 11
5: 23:00:00 21.300 19
6: 01:02:00 21.286 4
>

n包含时间为“23:00:00”的位置,因此 n-1 是紧邻“23:00:00”位置之前的位置。因此分配 data$Open[n] <- data$Open[n-1]做我们想要的。

关于r - 将 r 中的特定值更改为滞后值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34551684/

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