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

在R语言中聚合列表内连续重复的字符串

聚合列表中连续重复的客户活动

基础R实现:用rle()函数处理

R内置的rle()函数专门用于识别并处理连续重复值,完全匹配你的需求。通过lapply()遍历customers列表的每个子元素,对每个客户的活动序列应用rle()后提取values字段,就能得到去重后的连续活动序列。

示例代码:

# 处理customers列表,合并连续重复的活动
cleaned_customers <- lapply(customers, function(activity_seq) {
  rle_result <- rle(activity_seq)
  rle_result$values
})

# 查看第一个客户处理后的结果
cleaned_customers[[1]]

运行后第一个客户的活动会从"StartPage", "ClickItem1", "ClickItem1", "ClickItem1", "ScrollItem1"变为"StartPage", "ClickItem1", "ScrollItem1",完全符合你的要求。

扩展方案:用dplyr处理(适合后续数据分析)

如果需要将数据转换为数据框进行更多操作,可以先把列表转成结构化数据,再通过分组过滤去除连续重复项:

示例代码:

library(dplyr)

# 将列表转换为包含客户ID和活动的数据框
customer_data <- tibble(
  customer_id = rep(1:length(customers), sapply(customers, length)),
  activity = unlist(customers)
)

# 按客户分组,过滤掉与上一条重复的活动
cleaned_data <- customer_data %>%
  group_by(customer_id) %>%
  filter(activity != lag(activity, default = "")) %>%
  ungroup()

# 可选:转换回原始列表格式
cleaned_customers_list <- split(cleaned_data$activity, cleaned_data$customer_id)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 14:50:27