R dataframe中基于position列条件新增分类列的实现方法
R dataframe按位置规则新增列解决方案
方法1:基础R实现
直接使用ifelse函数批量判断赋值,代码简洁高效:
# 构造示例数据(实际使用时替换为你自己的dataframe即可) df <- data.frame( data = c(5,6,9,5), position = c("goalie", "forward", "defence", "forward") ) # 按规则新增列 df$new.column <- ifelse(df$position == "forward", "good", "bad")
方法2:dplyr包实现(适合tidyverse生态用户)
如果习惯使用管道操作,也可以用mutate搭配case_when实现,后续调整规则更灵活:
library(dplyr) df <- df %>% mutate(new.column = case_when( position == "forward" ~ "good", position %in% c("goalie", "defence") ~ "bad" ))
输出结果验证
运行上述任意方法后,得到的dataframe效果如下:
| data | position | new.column |
|---|---|---|
| 5 | goalie | bad |
| 6 | forward | good |
| 9 | defence | bad |
| 5 | forward | good |
内容的提问来源于stack exchange,提问作者Edcarm
相关产品推荐
相关产品推荐

