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

R语言如何高效生成按性别统计电影类型出现频次的列联表

R语言实现按性别统计电影类型观看次数的列联表

基础R实现(无需加载额外包,效率更高)

核心逻辑是对每个电影类型字段按性别分组求和,一行核心代码即可完成统计:

# 生成示例数据
mm <- matrix(0, 5, 6)
df <- data.frame(apply(mm, c(1,2), function(x) sample(c(0,1),1)))
colnames(df) <- c("Horror", "Thriller", "Comedy", "Romantic", "Sci.fi", "gender")

# 核心统计代码
result <- t(sapply(df[, -ncol(df)], function(col) tapply(col, df$gender, sum)))
# 调整列名(gender=0对应女性,gender=1对应男性)
colnames(result) <- c("female", "male")

输出结果行名为电影类型,列为对应性别分组的观看计数,和需求格式完全匹配。

tidyverse实现(可读性更强,逻辑清晰)

如果习惯使用tidyverse生态,可以通过长表转换+分组统计的逻辑实现:

library(dplyr)
library(tidyr)
library(tibble)

result <- df %>%
  # 把所有电影类型列转为长表格式
  pivot_longer(cols = -gender, names_to = "movie_type") %>%
  # 仅保留观看过对应类型的记录(value=1)
  filter(value == 1) %>%
  # 按性别、电影类型分组计数
  count(gender, movie_type) %>%
  # 转回宽表,无匹配记录的计数填充为0
  pivot_wider(names_from = gender, values_from = n, values_fill = 0) %>%
  # 调整列名匹配需求
  rename(female = `0`, male = `1`) %>%
  # 将电影类型设为行名
  column_to_rownames("movie_type")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:06:00