如何为R语言dataframe中满足条件的列值添加星号?
为DataFrame中指定数值添加星号的R实现方案
首先,先回顾原始数据生成代码:
id <- c("a", "b", "c", "d", "e") value <- c(3, 4.1, 13.2, 8.0, 10.1) df <- data.frame(id, value)
方法一:Base R 原生实现
直接用ifelse函数完成条件判断与字符串拼接,步骤清晰:
# 新建Value列,对>=10的数值添加星号 df$Value <- ifelse(df$value >= 10, paste0(df$value, "*"), as.character(df$value)) # 调整列顺序,保留需要的列 df <- df[, c("id", "Value")]
方法二:Tidyverse 风格实现
如果习惯用dplyr这类工具,可以用case_when配合mutate完成:
library(dplyr) df <- df %>% # 根据条件生成带星号的列 mutate(Value = case_when( value >= 10 ~ paste0(value, "*"), TRUE ~ as.character(value) )) %>% # 选择并排序需要的列 select(id, Value)
处理后的最终结果如下:
| id | Value |
|---|---|
| a | 3 |
| b | 4.1 |
| c | 13.2* |
| d | 8.0 |
| e | 10.1* |
内容的提问来源于stack exchange,提问作者Sergio
相关产品推荐
相关产品推荐

