如何计算r中的移位值(附示例)


您可以使用 R 中dplyr包中的lag()函数来计算滞后值。

该函数使用以下基本语法:

偏移量(x, n=1, …)

金子:

  • x :值向量
  • n : 延迟的位置数

下面的例子展示了如何在实践中使用该函数来计算移位值。

示例:计算 R 中的移位值

假设我们在 R 中有以下数据框,显示商店连续 10 天的销售额:

 #create data frame
df <- data. frame (day=1:10,
                 sales=c(18, 10, 14, 13, 19, 24, 25, 29, 15, 18))

#view data frame
df

   day sales
1 1 18
2 2 10
3 3 14
4 4 13
5 5 19
6 6 24
7 7 25
8 8 29
9 9 15
10 10 18

我们可以使用 dplyr 包中的lag()函数创建一个滞后列,显示每行前一天的销售额:

 library (dplyr)

#add new column that shows sales for previous day
df$previous_day_sales <- dplyr::lag(df$sales, n= 1 )

#view updated data frame
df

   day sales previous_day_sales
1 1 18 NA
2 2 10 18
3 3 14 10
4 4 13 14
5 5 19 13
6 6 24 19
7 7 25 24
8 8 29 25
9 9 15 29
10 10 18 15

以下是如何解释结果:

  • 偏移列中的第一个值是NA ,因为销售列中没有先前的值。
  • offset 列中的第二个值是18 ,因为它是 sales 列中的上一个值。
  • offset 列中的第三个值是10 ,因为它是 sales 列中的上一个值。

等等。

我们还可以更改lag()函数中n参数的值来计算不同数量的先前位置的滞后值:

 library (dplyr)

#add new column that shows sales for two days prior
df$previous_day_sales <- dplyr::lag(df$sales, n= 2 )

#view updated data frame
df

   day sales previous_day_sales
1 1 18 NA
2 2 10 NA
3 3 14 18
4 4 13 10
5 5 19 14
6 6 24 13
7 7 25 19
8 8 29 24
9 9 15 25
10 10 18 29

注意:要创建前导列,请使用 dplyr 包中的Lead()函数而不是lag()函数。

其他资源

以下教程解释了如何使用 R 中的其他常用函数:

如何使用 dplyr 中的 n() 函数
如何在 dplyr 中使用 across() 函数
如何在 dplyr 中使用 relocate() 函数
如何在 dplyr 中使用 slice() 函数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注