如何按照第一个数据集的PATID顺序对第二个数据集排序?
可以按第一个数据集的PATID顺序对第二个数据集排序
完全可以实现,因为两个数据集的PATID完全匹配,只需要以第一个数据集的PATID顺序为参考,对第二个数据集执行指定顺序排序操作即可。以下是几种常用工具的实现方法:
Excel 操作方法
- 方法1(直接匹配):把第一个数据集的PATID列复制到第二个数据集旁,用
VLOOKUP或XLOOKUP函数匹配对应std值:- VLOOKUP公式示例:
=VLOOKUP(A2, 第二个数据集的PATID和std区域, 2, FALSE)(A2为第一个数据集的PATID单元格),下拉填充即可得到按第一个顺序排列的std数据 - XLOOKUP公式示例(Excel 365及以上):
=XLOOKUP(A2, 第二个数据集PATID列, 第二个数据集std列)
- VLOOKUP公式示例:
- 方法2(直接排序):给第一个数据集的PATID列新增“顺序列”(比如从1开始的连续序号),将该序号通过VLOOKUP匹配到第二个数据集,再按序号列排序即可。
Python(Pandas)实现代码
假设第一个数据集为df_mean,第二个为df_std:
# 提取第一个数据集的PATID顺序作为参考列表 patid_order = df_mean['PATID'].tolist() # 按指定顺序重新排列第二个数据集 df_std_sorted = df_std.set_index('PATID').reindex(patid_order).reset_index()
执行后df_std_sorted的PATID顺序将与df_mean完全一致。
R 语言实现代码
假设第一个数据集为df_mean,第二个为df_std:
基础R写法
# 将第二个数据集的PATID转为因子,指定排序参考为第一个数据集的PATID顺序 df_std$PATID <- factor(df_std$PATID, levels = df_mean$PATID) # 按因子顺序排序 df_std_sorted <- df_std[order(df_std$PATID), ]
dplyr包简洁写法
library(dplyr) df_std_sorted <- df_std %>% mutate(PATID = factor(PATID, levels = df_mean$PATID)) %>% arrange(PATID)
内容的提问来源于stack exchange,提问作者NewUsr_stat
相关产品推荐
相关产品推荐

