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

如何用dplyr按分组将双变量NA值排在数据行首位?

问题解决方法

你的核心问题是原代码同时按AESOC和AEPT分组,导致AEPT为NA的行被单独拆分到子分组里,无法在对应AESOC分组的最前列统一排序。调整分组和排序逻辑即可实现需求:

调整后的代码

df <- df |> 
  group_by(AESOC) |>  # 仅保留AESOC作为分组依据,确保同AESOC的所有行在同一组内排序
  arrange(is.na(AEPT), AEPT, !is.na(Severity), .by_group = TRUE)

逻辑说明

  • group_by(AESOC):取消对AEPT的分组,让同一AESOC下的所有行(包括AEPT为NA的)进入同一个排序组。
  • is.na(AEPT):布尔值排序中TRUE(即AEPT为NA的行)会默认排在FALSE前面,直接实现NA行前置的需求。
  • 后续的AEPT用于对非NA的AEPT行按自身值排序(可根据实际需求移除或调整),!is.na(Severity)保留你原本对Severity的排序逻辑。

如果需要对Severity非NA的行进一步按值排序,可修改为:

df <- df |> 
  group_by(AESOC) |> 
  arrange(is.na(AEPT), AEPT, is.na(Severity), Severity, .by_group = TRUE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 08:29:52