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

为R语言DataFrame添加列以计算指定行内值的最大重复率

解决方法

你可以用以下两种方式实现需求:

方法一:Base R 实现

# 定义原始数据框
df <- data.frame(ID = c(1,2,3,4,5), 
                 Total = c(1,1,2,1,2), 
                 Ma = c(1,2,1,2,1), 
                 Mb = c(1,2,1,2,2), 
                 Md = c(1,2,1,2,1), 
                 Me = c(1,1,1,2,2))

# 添加重复率列
df$rep.rate <- apply(df[, c("Total", "Ma", "Mb", "Md", "Me")], 1, function(row) {
  # 统计当前行各数值的出现频次
  freq <- table(row)
  # 计算最高频次占总列数的比例
  max(freq) / length(row)
})

# 验证结果
df$rep.rate
# 输出: [1] 1.0 0.6 0.8 0.8 0.6

逻辑说明

  • apply(..., 1, ...) 指定按行处理数据框中Total到Me的5列
  • table(row) 统计当前行内每个数值的出现次数
  • 取频次最大值除以总列数(5),得到目标重复率

方法二:Tidyverse 实现

如果你习惯使用dplyr等tidyverse工具,可以用逐行处理的方式:

library(dplyr)

df <- df %>%
  rowwise() %>%
  mutate(rep.rate = {
    # 提取当前行的目标列值
    row_data <- c(Total, Ma, Mb, Md, Me)
    # 统计频次并计算重复率
    max(table(row_data)) / length(row_data)
  }) %>%
  ungroup()

# 验证结果
df$rep.rate

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:55:28