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

如何在R中处理数据集实现去重合并并生成colour1至colour6字段

实现步骤

首先修正原数据的列名拼写错误(原数据第19列误写为Inccome4,多了一个c),再按ID、Name、Surname分组,提取每个指标组对应的非空值和对应行的colour值即可,以下是可直接运行的代码:

# 加载依赖包
library(dplyr)

# 修正列名错误
colnames(data)[grepl("Inccome", colnames(data))] <- "Income4"

# 合并数据
OUTCOME <- data %>%
  group_by(ID, Name, Surname) %>%
  summarise(
    # A组指标+对应colour1
    colour1 = colour[!is.na(A1)][1],
    A1 = na.omit(A1)[1],
    A2 = na.omit(A2)[1],
    A3 = na.omit(A3)[1],
    Income1 = na.omit(Income1)[1],
    # M组指标+对应colour2
    colour2 = colour[!is.na(M1)][1],
    M1 = na.omit(M1)[1],
    M2 = na.omit(M2)[1],
    M3 = na.omit(M3)[1],
    Income2 = na.omit(Income2)[1],
    # P组指标+对应colour3
    colour3 = colour[!is.na(P1)][1],
    P1 = na.omit(P1)[1],
    P2 = na.omit(P2)[1],
    P3 = na.omit(P3)[1],
    Income3 = na.omit(Income3)[1],
    # Y组指标+对应colour4
    colour4 = colour[!is.na(Y1)][1],
    Y1 = na.omit(Y1)[1],
    Y2 = na.omit(Y2)[1],
    Y3 = na.omit(Y3)[1],
    Income4 = na.omit(Income4)[1],
    # R组指标+对应colour5
    colour5 = colour[!is.na(R1)][1],
    R1 = na.omit(R1)[1],
    R2 = na.omit(R2)[1],
    R3 = na.omit(R3)[1],
    Income5 = na.omit(Income5)[1],
    # B组指标+对应colour6
    colour6 = colour[!is.na(B1)][1],
    B1 = na.omit(B1)[1],
    B2 = na.omit(B2)[1],
    B3 = na.omit(B3)[1],
    Income6 = na.omit(Income6)[1],
    .groups = "drop"
  )

运行上述代码后得到的OUTCOME和你给出的样例结构、数值完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:15:03