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

在R中根据数值条件替换文本:创建新列X的实现问题

解决case_when处理剩余条件的问题

你可以通过在case_when中添加匹配所有剩余情况的条件来实现需求,注意要统一新列的数据类型(因为"<5"是字符串,原value是数值,需要把数值转成字符类型):

library(dplyr)

# 你的数据集
df <- structure(list(value = c(2, 3, 5, 10, 11, 12)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -6L))

# 创建新列X
df <- df %>%
  mutate(X = case_when(
    value < 5 ~ "<5",          # 处理value <5的情况
    TRUE ~ as.character(value) # 处理所有剩余情况(即value >=5),转成字符统一类型
  ))

代码说明

  • case_when按顺序匹配条件,第一个条件value <5 ~ "<5"直接返回指定字符串;
  • 第二个条件TRUE ~ as.character(value)会匹配所有未被前面条件覆盖的行(也就是value >=5的情况),将原value转为字符类型,保证新列X的元素类型一致;
  • 如果不手动转字符,R会自动将新列转为字符类型,但显式转换更清晰。

输出结果

运行代码后,数据集会变成:

#> # A tibble: 6 × 2
#>   value X    
#>   <dbl> <chr>
#> 1     2 <5   
#> 2     3 <5   
#> 3     5 5    
#> 4    10 10   
#> 5    11 11   
#> 6    12 12

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:42:38