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

R语言中ifelse输出球队编号而非名称,如何显示原球队名?

解决R中获胜队编号转球队名称的问题

看来你遇到了把数字编号转成实际球队名称的小困扰,我给你几个简单有效的解决思路:

  • 直接调用名称列(如果数据里有的话)
    如果你原本的dat数据框里,除了away(客队编号)和home(主队编号),还存着对应的客队名称(比如away_name)和主队名称(比如home_name),那直接修改你的ifelse语句就行:

    win = ifelse(dat$away_score > dat$home_score, dat$away_name, dat$home_name)
    

    这样输出的win就是直接的球队名称,不用再处理编号。

  • 用名称向量映射编号
    因为你提到球队是按字母顺序命名后分配的编号,那你可以先创建一个和编号顺序完全对应的球队名称向量(比如编号1对应字母排序第一的球队,以此类推):

    # 按字母顺序列出6支球队的名称,替换成你实际的球队名
    team_names = c("Atlanta Hawks", "Boston Celtics", "Brooklyn Nets", "Charlotte Hornets", "Chicago Bulls", "Cleveland Cavaliers")
    # 先判断获胜队的编号,再用向量索引转成名称
    win_id = ifelse(dat$away_score > dat$home_score, dat$away, dat$home)
    win = team_names[win_id]
    

    这里要注意team_names的顺序必须和编号分配的字母顺序完全一致,不然会出现对应错误。

  • 把编号列转成因子类型
    你也可以先把dat里的away和home列转换成因子,指定好编号对应的标签(球队名称),之后再运行原来的判断代码:

    team_names = c("Atlanta Hawks", "Boston Celtics", "Brooklyn Nets", "Charlotte Hornets", "Chicago Bulls", "Cleveland Cavaliers")
    # 将编号列转为因子,labels参数对应球队名称
    dat$away = factor(dat$away, levels = 1:6, labels = team_names)
    dat$home = factor(dat$home, levels = 1:6, labels = team_names)
    # 现在运行原ifelse,得到的就是球队名称
    win = ifelse(dat$away_score > dat$home_score, dat$away, dat$home)
    

    这种方法的好处是后续再用到away和home列时,都是显示名称而不是编号,适合后续的数据分析和可视化。

内容的提问来源于stack exchange,提问作者靻岇灛耄�,r;numbers"

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:47:50