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

如何用R按年份统计球队各国籍球员占比并自动导出至Excel

R实现足球队国籍占比统计并自动导出Excel的方案

首先安装并加载所需依赖包:

# 首次使用先安装包
install.packages(c("tidyverse", "openxlsx"))

# 加载包
library(tidyverse)
library(openxlsx)

单球队单年份统计导出

你可以直接在原有统计逻辑的基础上增加占比计算,再直接导出结果到Excel,无需手动复制:

# 统计指定球队、指定年份的国籍分布与占比
stat_result <- ARS_data %>%
  filter(Team == "ARS", Year == 2010) %>%
  count(Nation, name = "球员数量") %>%
  mutate(
    总球员数 = sum(球员数量),
    国籍占比 = 球员数量 / 总球员数
  ) %>%
  arrange(desc(球员数量)) # 按球员数量降序排序,匹配手动统计的样式

# 直接导出到Excel文件
write.xlsx(
  x = stat_result,
  file = "ARS_2010_国籍占比统计.xlsx",
  rowNames = FALSE # 不导出R默认行号,符合Excel使用习惯
)

批量多年份统计导出

如果需要一次性完成2010-2020年的统计,可通过分组逻辑批量处理,结果可按年份存放在同一个Excel的不同工作表中:

# 批量统计2010-2020年所有年份的ARS队国籍占比
all_year_stat <- ARS_data %>%
  filter(Team == "ARS", Year %in% 2010:2020) %>%
  group_by(Year) %>%
  group_modify(~{
    .x %>%
      count(Nation, name = "球员数量") %>%
      mutate(
        总球员数 = sum(球员数量),
        国籍占比 = 球员数量 / 总球员数
      ) %>%
      arrange(desc(球员数量))
  }) %>%
  ungroup()

# 按年份拆分数据,导出到同一Excel的不同工作表
split_data <- split(all_year_stat, all_year_stat$Year)
write.xlsx(
  x = split_data,
  file = "ARS_2010-2020_国籍占比统计汇总.xlsx",
  rowNames = FALSE
)

可选:设置Excel百分比格式

如果需要让占比列在Excel中直接显示为百分比样式,可通过openxlsx的样式功能实现:

# 创建工作簿与工作表
wb <- createWorkbook()
addWorksheet(wb, "2010年统计")

# 写入数据
writeData(wb, "2010年统计", stat_result, rowNames = FALSE)

# 设置百分比格式
pct_style <- createStyle(numFmt = "0.00%")
addStyle(
  wb, "2010年统计", 
  style = pct_style, 
  cols = which(colnames(stat_result) == "国籍占比"), 
  rows = 2:(nrow(stat_result) + 1)
)

# 保存文件
saveWorkbook(wb, "ARS_2010_国籍占比统计_带格式.xlsx", overwrite = TRUE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:45:03