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

在R语言中根据CODE_UAI重复次数创建Three_CM2变量的问题

问题原因
  • 你代码中的核心错误是误用了count()函数:count()是dplyr的汇总类函数,调用后会直接输出按指定列分组的计数汇总表,无法在mutate()中为原数据集的每一行返回对应CODE_UAI的出现次数。
  • 另外你代码的赋值逻辑和需求不匹配:需求是符合条件时Three_CM2赋值为3,你原代码中写的是赋值为1。
正确实现方案

方案1:使用add_count()(可读性更高)

add_count()会保留原数据集所有行,仅新增一列存储对应分组的计数,适合该场景:

library(dplyr)
Ech_final_nom_BSA <- Ech_final_nom_BSA %>%
  add_count(CODE_UAI, name = "tmp_count") %>%
  mutate(Three_CM2 = ifelse(tmp_count == 3, 3, 0)) %>%
  select(-tmp_count) # 不需要保留中间计数列可删除该行

方案2:使用分组+n()(无中间列)

直接按CODE_UAI分组后用n()获取当前分组的行数即可:

library(dplyr)
Ech_final_nom_BSA <- Ech_final_nom_BSA %>%
  group_by(CODE_UAI) %>%
  mutate(Three_CM2 = ifelse(n() == 3, 3, 0)) %>%
  ungroup() # 处理完后取消分组避免后续操作受影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:39:01