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

R如何根据上一行同State、Market、Date列值删除重复Cost列值

R语言实现代码

使用dplyr包的lag()函数即可实现需求,代码如下:

# 加载dplyr包
library(dplyr)

# 1. 先对原始数据按分组维度排序,保证同组行连续
df_sorted <- df_raw %>%
  arrange(State, Market, Date)

# 2. 比对当前行与上一行的指定列,相同则清空Cost
df_result <- df_sorted %>%
  mutate(Cost = ifelse(
    State == lag(State, default = "") &
    Market == lag(Market, default = "") &
    Date == lag(Date, default = "") &
    Cost == lag(Cost, default = 0),
    NA, # 若要置为空字符串,替换为""即可
    Cost
  ))

注意事项

  • 必须先执行排序步骤,保证State、Market、Date相同的行连续排列,否则比对逻辑会出错
  • 若Cost列为数值类型,建议保留NA值避免列类型被强制转为字符型,输出展示时可单独将NA显示为空

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:18:03