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

如何按完整行分组,用相邻行同列非NA值填充NA并拼接值

实现方案(R 语言,基于 tidyverse 套件)

核心逻辑为两步:首先标记所有完整行生成分组ID,再按分组拼接每一列的非NA值,全程无冗余循环,代码简洁且执行效率高。

步骤1:构造示例输入数据

library(tidyverse)
# 输入数据对应结构
df <- tibble(
  V1 = c("a", NA, NA, NA, "a1", NA),
  V2 = c("b", "f", NA, "j", "b1", NA),
  V3 = c("c", "g", NA, NA, "c1", "f1"),
  V4 = c("d", NA, "i", NA, "d1", "g1"),
  V5 = c("e", NA, NA, "k", "e1", NA)
)

步骤2:核心处理代码

df_result <- df %>%
  # 识别完整行,每遇到一个完整行分组ID+1,后续相邻非完整行归属同一组
  mutate(group_id = cumsum(if_all(everything(), ~!is.na(.x)))) %>%
  # 按分组聚合
  group_by(group_id) %>%
  # 每一列拼接所有非NA值
  summarise(across(everything(), ~paste0(na.omit(.x), collapse = ""))) %>%
  ungroup() %>%
  # 移除辅助生成的分组列
  select(-group_id)

输出结果

print(df_result)
# 输出:
# # A tibble: 2 × 5
#   V1    V2    V3    V4    V5   
#   <chr> <chr> <chr> <chr> <chr>
# 1 a     bfj   cg    di    ek   
# 2 a1    b1    c1f1  d1g1  e1  

如果是从本地文件读取数据,直接用read_csv()读取后直接执行上述处理代码即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:54:07