如何根据type变量的值为var变量添加对应指定后缀?
根据type为var添加后缀的最简实现方法
首先还原你的数据框:
df <- structure(list(var = c("test", "test", "score", "score", "base", "base"), type = c("white", "black", "white", "black", "white", "black")), row.names = c(NA, -6L), class = c("spec_tbl_df", "tbl_df", "tbl", "data.frame"))
方法1:Base R 原生写法
直接用ifelse生成对应后缀,再通过paste0拼接:
df$new_var <- paste0(df$var, ifelse(df$type == "white", "_t", "_b"))
方法2:tidyverse(dplyr)写法
如果你习惯用tidyverse生态,用mutate配合条件判断即可:
library(dplyr) # 用case_when(适合后续多条件扩展) df <- df %>% mutate(new_var = paste0(var, case_when(type == "white" ~ "_t", type == "black" ~ "_b"))) # 仅两个条件时,用ifelse更简洁高效 df <- df %>% mutate(new_var = paste0(var, ifelse(type == "white", "_t", "_b")))
两种方法最终都会生成目标新列,结果示例:
# A tibble: 6 × 3 var type new_var <chr> <chr> <chr> 1 test white test_t 2 test black test_b 3 score white score_t 4 score black score_b 5 base white base_t 6 base black base_b
内容的提问来源于stack exchange,提问作者a_todd12
相关产品推荐
相关产品推荐

