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

如何在R中按行获取特定列最频繁分类值及解决pmax错误

解决每行访问类型的众数及次数统计问题

你之前用pmax的思路不对哦,pmax是按字符的字典序(或者数值大小)取每行的最大值,完全不是统计出现次数最多的类别,难怪会出错!咱们换个思路,直接逐行统计每个访问类型的出现频率,再提取众数和对应的次数。

方案1:处理包含多值的单元格(比如"SFU,GFU"这种逗号分隔的情况)

如果你的单元格里有多个访问类型用逗号分隔,咱们先拆分这些值,再统计每个独立类型的出现次数:

library(tidyverse)

# 先模拟你的数据结构(你可以替换成自己的out1)
out1 <- tibble(
  Date = c("2023-01-01", "2023-01-02", "2023-01-03"),
  Col2 = c("GFU", "SFU", "SFU"),
  Col3 = c("GFU", "GFU", "SFU"),
  Col4 = c("SFU", "SFU", "SFU"),
  Col5 = c("GFU,SFU", "SFU", "SFU,GFU")
)

# 定义逐行处理的函数:返回出现次数最多的类型和次数
get_most_frequent <- function(row_data) {
  # 提取2-5列的内容,拆分逗号分隔的多值,转成无空格的向量
  all_values <- str_split(row_data[2:5], ",") %>% 
    unlist() %>% 
    trimws()
  
  # 统计每个值的出现频率
  freq_stats <- table(all_values)
  
  # 找出最大频率值
  max_count <- max(freq_stats)
  # 找出对应的类型(如果有多个并列,这里取第一个,可按需修改)
  top_type <- names(freq_stats)[freq_stats == max_count][1]
  
  # 返回结果
  return(tibble(MAX1 = top_type, Repeat_Count = max_count))
}

# 应用到每一行,合并结果
out1 <- out1 %>%
  rowwise() %>%
  bind_cols(get_most_frequent(c_across(everything()))) %>%
  ungroup()

# 查看结果
print(out1)

运行后,第三行的MAX1会是SFU,Repeat_Count是4,完全符合你的需求——因为拆分后SFU在前三个单元格各出现1次,第四个单元格里也有1次,总共4次。

方案2:不拆分单元格(把每个单元格内容当作单一类别)

如果你的"SFU,GFU"是一个独立的类别,不需要拆分,那修改函数即可:

get_most_frequent_no_split <- function(row_data) {
  # 直接提取2-5列的内容,去除空格
  all_values <- row_data[2:5] %>% 
    unlist() %>% 
    trimws()
  
  freq_stats <- table(all_values)
  max_count <- max(freq_stats)
  top_type <- names(freq_stats)[freq_stats == max_count][1]
  
  return(tibble(MAX1 = top_type, Repeat_Count = max_count))
}

# 应用函数
out1 <- out1 %>%
  rowwise() %>%
  bind_cols(get_most_frequent_no_split(c_across(everything()))) %>%
  ungroup()

这种情况下第三行的Repeat_Count会是3,因为SFU在三个单元格里出现,SFU,GFU是单独的类别只出现1次。

额外说明:处理并列众数

如果某一行有多个类别出现次数相同(比如SFU和GFU都出现2次),你可以修改函数返回所有并列的类别,比如把top_type的代码改成:

top_type <- paste(names(freq_stats)[freq_stats == max_count], collapse = ", ")

这样就会返回类似SFU, GFU的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:49:49