如何在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
相关产品推荐
相关产品推荐

