如何在R语言中合并DataFrame两列生成带下划线的EYE_ID列
问题描述
我有一个包含两列("EYE"和"ID")的DataFrame df,想通过将这两列元素以下划线_分隔合并,创建第三列"EYE_ID"。示例数据如下:
df <- tibble::tibble(ID = replicate(5, 'GATE'), EYE = seq(1, 5, 1))
期望得到的结果:
ID EYE EYE_ID <chr> <dbl> <chr> 1 GATE 1 GATE_1 2 GATE 2 GATE_2 3 GATE 3 GATE_3 4 GATE 4 GATE_4 5 GATE 5 GATE_5
解决方案
这里提供几种在R中实现该需求的常用方法:
1. 使用tidyverse工具链(推荐)
借助dplyr::mutate和stringr::str_c完成拼接,代码风格简洁易读,适合常规数据处理场景:
library(tidyverse) df <- df %>% mutate(EYE_ID = str_c(ID, EYE, sep = "_"))
2. Base R原生方法
如果不想加载额外包,直接用base R的paste或paste0函数即可:
- 用
paste指定分隔符:
df$EYE_ID <- paste(df$ID, df$EYE, sep = "_")
- 用
paste0手动拼接下划线:
df$EYE_ID <- paste0(df$ID, "_", df$EYE)
验证结果
执行上述任意一种方法后,打印df就能得到符合预期的结果:
print(df)
内容的提问来源于stack exchange,提问作者Daniel James
相关产品推荐
相关产品推荐

