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

在R语言中实现基于球队名称参数的数据框自动化处理

解决方法:完善自动化数据处理函数

针对需求,以下是完善后的datacleanup()函数,支持datacleanup(falcons)的调用方式,输出与手动处理完全一致的结果。

核心修改点

  • 动态匹配球队数据:通过非标准求值,将输入的球队名称转换为对应数据集名称(如falcons→falconscap2022/falconspicks2022)
  • 对齐手动处理逻辑:严格复刻手动代码的数据转换、计算规则
  • 明确结果返回:函数最终输出合并后的处理结果
  • 保留可选清洗步骤:针对原始带$和逗号的薪资数据,保留格式清洗逻辑(示例数据已为数值型,可按需启用)

完善后的函数代码

library(dplyr)
library(rlang)

datacleanup <- function(team){
  # 将输入的球队名称转换为字符串,匹配对应数据集
  team_name <- as_string(ensym(team))
  
  # 动态获取球队薪资与选秀数据
  teamcap2022 <- get(paste0(team_name, "cap2022"))
  teampicks2022 <- get(paste0(team_name, "picks2022"))
  
  # 可选:处理带$和逗号的原始average字段(示例数据已为数值,可注释)
  # teamcap2022 <- teamcap2022 %>%
  #   mutate(average = gsub(",", "", average) %>% 
  #            gsub("\\$", "", .) %>% 
  #            as.numeric())
  
  # 复刻手动版本的薪资数据处理逻辑
  teamcap2022 <- teamcap2022 |>
    mutate(cash = sum(average),
           nump = n(), 
           .by = posg) |>
    mutate(cap_pct = percent(cash/sum(cash)))
  
  # 复刻手动版本的选秀数据处理逻辑
  teampicks2022 <- teampicks2022 |>
    mutate(top100 = as.numeric(pick) <= 100, .keep = "unused")
  
  # 合并数据集
  team2022stuff <- teamcap2022 %>%
    left_join(teampicks2022, by = "posg")
  
  # 返回处理结果
  return(team2022stuff)
}

测试验证

使用提供的示例数据,调用函数即可得到与手动处理一致的结果:

# 加载示例数据
falconscap2022 <- structure(list(average = c(18333333, 16823333, 9375000, 8227624, 
5500000, 5383617, 5250000, 4850000, 3681822, 3576437), posg = c("OL", 
"Front7", "QB", "TE", "DB", "WR", "RB", "ST", "OL", "DB")), row.names = c(NA, 
-10L), class = "data.frame")

falconspicks2022 <- structure(list(pick = c("10", "109", "200", "94", "109"), posg = c("OL", 
"Front7", "DB", "WR", "DB")), row.names = c(NA, -5L), class = "data.frame")

# 调用函数
result <- datacleanup(falcons)

# 查看结果
print(result)

细节说明

  • 如果习惯传入字符串参数,可将team_name <- as_string(ensym(team))改为team_name <- team,调用时用datacleanup("falcons")
  • 注释的薪资清洗代码,可在原始数据包含$或逗号时启用,示例数据无需执行该步骤

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:54:56