如何按SN列各因子水平对R DataFrame按Run Date datetime列升序排序
R DataFrame 分组排序实现方案
以下两种方法均可实现按SN列分组后,每组内Run Date列从早到晚升序排序的需求:
方法1:dplyr包实现(推荐,可读性强)
若未安装dplyr,先运行install.packages("dplyr")安装依赖:
library(dplyr) dat_sorted <- dat %>% # 按SN列分组 group_by(SN) %>% # 每组内按Run Date升序排序,.by_group=TRUE保留分组的先后顺序 arrange(`Run Date`, .by_group = TRUE) %>% # 解除分组,避免后续操作受分组影响 ungroup()
方法2:R基础函数实现(无需额外安装包)
直接使用基础的order函数多列排序即可:
# 先按SN排序实现分组,相同SN的行再按Run Date升序排列 dat_sorted <- dat[order(dat$SN, dat$`Run Date`), ]
结果验证
可以运行以下代码查看排序效果:
# 查看每个SN分组的最早、最晚日期 aggregate(`Run Date` ~ SN, data = dat_sorted, function(x) c(min = min(x), max = max(x)))
内容的提问来源于stack exchange,提问作者firmo23
相关产品推荐
相关产品推荐

