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

按ID拼接列中字符串:Tibble数据处理求助

按分组拼接非NA字符串并替换空内容

原始数据

# 你的原始tibble数据
df <- tibble(
  dep_code = c("10", "10", "10", "10", "10", "10",
               "11", "11", "11", "11", "11", "11",
               "12", "12", "12", "12", "12", "12"),
  dep_color = rep(1, 18),
  message = c("One", NA, "Two", NA, "Four", NA,
              NA, "Three", NA, NA, NA, NA,
              NA, NA, NA, NA, NA, NA)
)

需求说明

按dep_code分组,拼接message列的所有非NA字符串;对于无有效内容(全为NA)的分组,将message替换为自定义文本No message,最终得到分组汇总后的结果。

解决方案

使用dplyr包的分组汇总功能即可实现,summarise函数并未被弃用,正确代码如下:

library(dplyr)

result_df <- df %>%
  # 按dep_code和dep_color分组(dep_color同组值一致,保留该列)
  group_by(dep_code, dep_color) %>%
  # 过滤NA后拼接字符串,汇总后取消分组状态
  summarise(
    message = paste(na.omit(message), collapse = ""),
    .groups = "drop"
  ) %>%
  # 把空字符串替换为指定文本
  mutate(message = ifelse(message == "", "No message", message))

运行结果

执行上述代码后得到的结果:

# A tibble: 3 × 3
  dep_code dep_color message    
  <chr>        <dbl> <chr>      
1 10               1 OneTwoFour 
2 11               1 Three      
3 12               1 No message

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 02:56:02