使用同一数据框中的数值在数据框中创建新的分类列?

Creating a new categorical column in a data frame using numerical values from that same data frame?

我正在尝试根据 4 个不同数值列中的最大值为我的数据框中的每个观察值分配一个分类值。

我正在处理所有 FIFA 足球运动员的名单,如果他们的最高评分是他们的射门统计数据,那么他们就是攻击者,如果在防守中最高,那么他们就是后卫,你明白了。

library(tibble)
library(dplyr)

df <- tibble(
  player = c("Ronaldo", "Messi", "Neymar", "Dibala"),
  Shooting = c(24,54,23,44),
  Defending = c(66,55,44,35)
)

df <- df %>%
  mutate(role = ifelse(Shooting > Defending, "Attacker", "Defender"))

df

你的意思是这样的吗?

我们可以使用case_when

library(dplyr)
df %>%
    mutate(role = Shooting > Defending ~ "Attacker", TRUE ~ "Defender"))

或者另一种选择是max.col

df$role <- c("Attacker", "Defender")[max.col(df[c("Shooting", 
        "Defending")], 'first')]