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

R语言使用dplyr按站点统计首次出现的因子新水平数

基于dplyr的实现方案

核心逻辑为:先将多列颜色数据转为长格式统一处理,按站点顺序保留每个颜色第一次出现的记录,再统计每个站点的首次出现颜色数量,补全无新增颜色的站点计数。

library(dplyr)
library(tidyr)

# 计算每个站点的新增颜色数
new_color_stat <- d %>%
  # 把color1、color2列转为长格式,统一统计颜色
  pivot_longer(cols = starts_with("color"), values_to = "color") %>%
  # 按站点从小到大排序
  arrange(site) %>%
  # 每个颜色仅保留第一次出现的记录
  distinct(color, .keep_all = TRUE) %>%
  # 统计每个站点首次出现的颜色数量
  count(site, name = "new_color_count") %>%
  # 补全所有站点,无新增的站点计数设为0
  right_join(tibble(site = unique(d$site)), by = "site") %>%
  mutate(new_color_count = tidyr::replace_na(new_color_count, 0)) %>%
  arrange(site)

# 如需把统计结果合并回原始数据集,可执行以下代码
d_with_stat <- d %>% left_join(new_color_stat, by = "site")

运行上述代码得到的统计结果如下:

sitenew_color_count
12
20
30
41
50
60
71
81
90
100

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:36:04