You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R的每日测量数据框中新增列计算当日与昨日测量值差值?

计算R中每日测量值的增减量

要实现给你的data frame新增increase列,计算当日测量值相对昨日的变化量,有几种简单直接的方法:

方法1:使用dplyr的lag()函数(推荐)

这是最简洁直观的方式,lag()函数会将目标列向下偏移一行,正好对应"昨日"的值:

library(dplyr)
DF2 <- DF %>% mutate(increase = measurement - lag(measurement))

方法2:基础R实现(无需额外包)

如果不想加载dplyr,可以用基础R的索引或diff()函数:

方式A:用diff()函数

diff()直接计算相邻元素的差值,给结果前补NA即可匹配原数据行数:

DF$increase <- c(NA, diff(DF$measurement))

方式B:手动索引计算

通过取除最后一行外的测量值,前面补NA后与原列相减:

DF$increase <- DF$measurement - c(NA, DF$measurement[-nrow(DF)])

验证结果

用你提供的示例数据测试:

# 构建示例数据
DF <- tibble::tibble(measurement = c(1,2,3,5,7,10))

运行上述任意一种方法后,都会得到你期望的结果:

# A tibble: 6 × 2
  measurement increase
       <dbl>    <dbl>
1          1       NA
2          2        1
3          3        1
4          5        2
5          7        2
6         10        3

内容的提问来源于stack exchange,提问作者Der Gerät

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 23:45:56