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

如何在R语言中计算每行前两大值同时位于前两列的占比?

计算每行前两大值均在前两列的占比

可以通过以下步骤实现需求:

方法思路

对数据框的每一行,提取前两个最大值对应的列索引,判断这两个索引是否都属于前两列(列1和列2),最后统计符合条件的行数占总行数的百分比。

具体代码

# 简洁版实现
C <- mean(apply(df, 1, function(r) {
  # 获取该行前两大值的列索引
  top_two_cols <- order(r, decreasing = TRUE)[1:2]
  # 检查两个索引是否都在前两列
  all(top_two_cols %in% 1:2)
})) * 100

# 查看结果
C

代码解释

  • order(r, decreasing = TRUE)[1:2]:对当前行的数值按降序排序,取前两个值对应的原始列位置索引
  • all(top_two_cols %in% 1:2):验证这两个索引是否全部属于前两列的范围(1和2),返回布尔值
  • mean(...) * 100:计算所有行中符合条件的比例,乘以100转换为百分比

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 14:54:21