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

如何在R语言中新增列存储上一行对应列的数值?

在R语言中生成上一行数值列的实现方法

首先构造示例数据框,方便你直接测试:

df <- data.frame(
  x = 1:5,
  y = c(0.2, 7.1, 2.4, 1.1, 6.0),
  z = c("yes", "no", "no", "yes", "no")
)

方法一:基础R实现

直接通过向量索引拼接的方式生成新列,无需额外安装包:

# 生成last.y列:第一行为NA,后续行取y列的上一行值
df$last.y <- c(NA, df$y[-nrow(df)])
# 生成last.z列:逻辑与last.y一致
df$last.z <- c(NA, df$z[-nrow(df)])

方法二:tidyverse(dplyr)实现

如果习惯使用tidyverse生态,用lag()函数语法更直观:

# 首次使用需安装包
install.packages("dplyr")
# 加载dplyr
library(dplyr)

# 新增目标列
df <- df %>%
  mutate(
    last.y = lag(y),
    last.z = lag(z)
  )

lag()函数默认将第一行设为NA,后续行自动提取对应列的上一行数值,代码更简洁易读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:31:08