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

R语言实现数据框列第n与n-1个元素差值计算生成新列

解决方案

直接使用R内置的diff()函数即可实现需求,完整代码如下:

# 构建原始数据集
year <- c(0,1,2,3,4,5,6,7,8)
total <- c(4462,8233,8233,8631,8631,9016,9016,9420,9494)
df <- data.frame(year, total)

# 计算生成new列
df$new <- c(df$total[1], diff(df$total))

逻辑说明

  • diff(x)函数的作用是计算向量x中相邻元素的差值,默认计算规则是x[n] - x[n-1],返回结果长度比原向量短1位,正好对应示例里从第二个位置开始的3771、0、398...这类差值
  • 因为要求new列第一个值等于total列的第一个元素,所以直接把df$total[1]拼在diff计算结果的最前面,就能得到长度和原数据框匹配的新列。

运行后输出的最终结果和预期完全一致:

> df
  year total  new
1    0  4462 4462
2    1  8233 3771
3    2  8233    0
4    3  8631  398
5    4  8631    0
6    5  9016  385
7    6  9016    0
8    7  9420  404
9    8  9494   74

内容的提问来源于stack exchange,提问作者melange164

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 18:45:38