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

如何基于其他列条件创建非二进制的多级别新列

为联赛分配多等级难度值的实现方法

你不需要局限于ifelse的二进制结果,下面是几种在R中实现多等级联赛难度赋值的方案,覆盖你要求的0.4-1区间,针对指定联赛设置对应等级:

方法1:嵌套ifelse语句

虽然ifelse本身是二进制判断,但可以通过嵌套实现多分支逻辑,直接给不同联赛赋值对应难度:

# 假设你的数据框名为df
df$league_difficulty <- ifelse(df$League == "La Liga", 1.0,
                               ifelse(df$League == "Bundesliga", 0.8,
                                      ifelse(df$League == "Serie A", 0.6,
                                             ifelse(df$League == "Premier League", 0.7, 0.4))))

说明:这里将La Liga设为最高难度1.0,Bundesliga为0.8,Premier League为0.7,Serie A为0.6,其他未指定联赛统一设为最低0.4,你可根据需求调整数值。

方法2:使用dplyr::case_when(推荐)

dplyr包的case_when语法更清晰,可读性远高于嵌套ifelse,适合多条件分支赋值:

先安装并加载dplyr:

install.packages("dplyr")
library(dplyr)

然后执行赋值操作:

df <- df %>%
  mutate(league_difficulty = case_when(
    League == "La Liga" ~ 1.0,
    League == "Bundesliga" ~ 0.8,
    League == "Premier League" ~ 0.7,
    League == "Serie A" ~ 0.6,
    TRUE ~ 0.4  # 所有未匹配的联赛默认赋值0.4
  ))

方法3:命名向量映射

如果联赛与难度的对应关系固定,可先创建一个命名向量,再通过匹配快速赋值,便于后续修改等级:

# 创建联赛-难度映射向量
difficulty_map <- c(
  "La Liga" = 1.0,
  "Bundesliga" = 0.8,
  "Premier League" = 0.7,
  "Serie A" = 0.6
)

# 为数据框添加难度列,未匹配的联赛设为0.4
df$league_difficulty <- ifelse(df$League %in% names(difficulty_map),
                               difficulty_map[df$League],
                               0.4)

方法4:因子转换为数值

先将指定联赛转换为有序因子,再映射到对应难度数值:

# 将指定联赛设为有序因子,顺序对应难度从高到低
df$League_factor <- factor(df$League,
                           levels = c("La Liga", "Bundesliga", "Premier League", "Serie A"),
                           ordered = TRUE)

# 映射到0.4-1的区间数值
df$league_difficulty <- case_when(
  League_factor == "La Liga" ~ 1.0,
  League_factor == "Bundesliga" ~ 0.8,
  League_factor == "Premier League" ~ 0.7,
  League_factor == "Serie A" ~ 0.6,
  TRUE ~ 0.4
)

验证结果

执行上述任意方法后,可通过以下代码查看赋值结果:

# 查看不同联赛的难度值分布
table(df$League, df$league_difficulty)

内容的提问来源于stack exchange,提问作者Moisés Feitosa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:35:20