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

如何在R语言中对含相同列值的行进行排序对齐

数据框整理:将相同值对齐到同一行

首先,先把你的数据加载为R数据框:

Data <- structure(c(NA, "FGFR3", "FAT1", "ARID1A", "CREBBP", "HRAS", 
"SF3B1", "RHOB", "FBXW7", "KRAS", "TP53", "PIK3CA", "RHOA", "ASXL2", 
"HLA-A", "APC", "ATM", "ARID2", "PTEN", "CDH1", "RBM10", "ERBB4", 
"ERCC2", "BAP1", "KMT2D", "ERBB2", "SMC1A", "RB1", "BCLAF1", 
NA, NA, NA, NA, NA, NA, NA, "TP53", "RHOA", "FGFR3", "SF3B1", 
"PTEN", "RB1", "FAT1", "KDM6A", "ARID1A", "PIK3CA", "CDKN1A", 
"ERBB4", "RBM10", "ASXL2", "HRAS", "BAP1", "KMT2A", "ERBB3", 
"RHOB", "KRAS", "APC", "KMT2C", "BCLAF1", "KMT2D", "CDKN2A", 
"PSIP1", "FBXW7", "HLA-A", "ERBB2", "ATM", "RXRA", "CREBBP", 
"EP300", "ARID2", "KDM6A", "CDKN1A", "KMT2A", "ERBB3", "KMT2C", 
"CDKN2A", "PSIP1", "RXRA", "EP300", NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA), dim = c(35L, 3L), dimnames = list(NULL, c("F_d", 
"M_d", "unique")))
Data <- as.data.frame(Data)

接下来,执行以下代码完成整理:

# 提取所有非NA的唯一元素
all_elements <- unique(c(Data$F_d, Data$M_d, Data$unique))
all_elements <- all_elements[!is.na(all_elements)]

# 构建新数据框
result <- data.frame(
  F_d = ifelse(all_elements %in% Data$F_d, all_elements, NA),
  M_d = ifelse(all_elements %in% Data$M_d, all_elements, NA),
  unique = ifelse(all_elements %in% Data$unique, all_elements, NA)
)

# 查看结果(前10行示例)
head(result, 10)

运行后,你会得到如下格式的结果(示例):

F_dM_dunique
FGFR3FGFR3NA
FAT1FAT1NA
ARID1AARID1ANA
CREBBPCREBBPNA
HRASHRASNA
SF3B1SF3B1NA
RHOBRHOBNA
FBXW7FBXW7NA
KRASKRASNA
TP53TP53NA

代码说明:

  • 先收集三列中所有非NA的唯一元素,确保每个元素只处理一次
  • 通过ifelse判断每个元素在对应列是否存在,存在则保留元素,否则填充NA
  • 最终生成的数据框会让相同元素对齐到同一行,完全匹配你的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 11:37:34