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

在R语言中为数据框添加条件计数新列

解决方案

首先加载dplyr包(未安装的话先运行install.packages("dplyr")),用以下代码即可实现需求:

library(dplyr)

# 原始数据
df <- structure(list(id = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L), 
                     form = c("test", "test", "missing", "test", "test", "missing", 
                              "test", "test", "test", "missing")), row.names = c(NA, 10L), class = "data.frame")

# 添加目标列
df <- df %>%
  group_by(id) %>%
  mutate(form_completed = ifelse(form == "missing", NA_integer_, cumsum(form == "test"))) %>%
  ungroup()

# 查看结果
df

代码说明

  • group_by(id):按id分组,保证每个id内部独立计数
  • cumsum(form == "test"):对分组内每行判断form是否为"test"(是则返回1,否则0),累加该值得到连续计数
  • ifelse(form == "missing", NA_integer_, ...):将form为"missing"的行对应计数替换为NA,用NA_integer_确保列类型为整数,和期望输出一致

运行后得到的结果与你给出的期望输出完全匹配:

idformform_completed
1test1
1test2
1missingNA
1test3
2test1
2missingNA
2test2
3test1
3test2
3missingNA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:50:45