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

如何在R数据框中生成变量变化列(首值始于第二行)

计算时间序列变量差值并拟合回归的简便方法

一、快速创建logindex差值列

不用写循环或手动调整向量位置,用dplyr包的mutate()搭配lag()函数就能轻松实现。lag(logindex)会提取当前行的上一行logindex值,两者相减得到相邻行的差值,第一行因无前置数据自动生成NA,正好满足首个有效值从第二行开始的需求。

代码实现

# 加载dplyr(或直接加载整个tidyverse)
library(dplyr)

# 假设你的数据框名为df,新增差值列logindex_diff
df <- df %>%
  mutate(logindex_diff = logindex - lag(logindex))

处理后的数据示例

提取关键列查看效果:

df %>% select(Year, logindex, logindex_diff) %>% head(10)

输出结果:

Year logindex logindex_diff
1  1927     2.87            NA
2  1928     3.19          0.32
3  1929     3.07         -0.12
4  1930     2.73         -0.34
5  1931     2.09         -0.64
6  1932     1.93         -0.16
7  1933     2.31          0.38
8  1934     2.25         -0.06
9  1935     2.60          0.35
10 1936     (对应logindex值)  (对应差值)

二、拟合线性回归模型

lm()函数会自动忽略含NA的行,直接用处理后的数据拟合即可:

# 拟合logindex_diff与BookMarket的线性回归
model <- lm(logindex_diff ~ BookMarket, data = df)

# 查看回归结果详情
summary(model)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 03:47:07