在R中计算表上的滞后

  • 本文关键字:滞后 计算 r
  • 更新时间 :
  • 英文 :


我有一个数据表my_data,包含3个变量,符号、日期、股价和141851个观测值。这个想法是计算股票价格的滞后1天,注意首先按符号分组,否则我将使用数据帧中前一只股票的值计算滞后。

这是表中的一些行。

168.9873[/tr>168.9579169.7427
符号 日期 股价
MSFT 2019-02-12 106.8100
MSFT 2019-02-13 106.9000
MSFT 2019-02-14 108.2200
APPL 2018-01-02
APPL 2018-01-03
APPL 2018年01月04日

下面是一个使用内置数据集的示例。我建议使用dplyr进行这些计算。请参阅备忘单。

library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
df <- data(ChickWeight)
df <- as_tibble(ChickWeight)
df <- df %>% 
group_by(Chick) %>% 
mutate(change = (weight-first(weight))/first(weight)*100) %>% 
mutate(change = round(change,2))

由reprex包(v0.3.0(创建于2020-12-07

我们也可以使用data.table

library(data.table)
setDT(df1)[, change := round(weight - first(weight))/first(weight) * 100, 2), Chick] 

数据

data(ChickWeight)
df1 <- ChickWeight

最新更新