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

如何在R中基于指定列对data frame进行合并,保留各列非空有效值

你使用paste作为聚合函数时会把分组内所有值(包括空字符串"")拼接为一个字符串,无法自动过滤空值保留有效内容。由于空字符串的排序优先级低于所有非空字符串,直接把聚合函数换成max即可实现需求:

base R 方案

直接修改你原有的aggregate代码即可:

result <- aggregate(. ~ symbol, data = df, FUN = max)

dplyr 方案(可读性更强)

library(dplyr)
result <- df %>%
  group_by(symbol) %>%
  summarise(across(everything(), ~ max(.)))

# 显式过滤空值的版本,逻辑更清晰,适合后续扩展
result <- df %>%
  group_by(symbol) %>%
  summarise(across(everything(), ~ ifelse(all(. == ""), "", first(.[. != ""]))))

以上两种方案输出的结果均匹配你需要的目标表格格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:06:08