如何在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
相关产品推荐
相关产品推荐

