R语言入门:如何清理DataFrame指定列单元格的冗余字符?
清理R数据框指定列的冗余字符
步骤1:构造示例数据
先模拟包含目标列和其他无需修改列的数据框:
df <- data.frame( 待处理列 = c("nda", "nda 20202 (2)", "nda 202392", "nda 2323", "nda 02232 (1)"), 其他列1 = c("a", "b", "c", "d", "e"), 其他列2 = c(10, 20, 30, 40, 50) )
步骤2:用正则表达式清理目标列
用基础R的gsub函数即可完成,无需额外安装包:
# 移除开头的"nda "和末尾的"(数字)"冗余内容 df$待处理列 <- gsub("^nda | \\(\\d+\\)$", "", df$待处理列)
如果习惯使用tidyverse系列的stringr包,也可以这么写:
library(stringr) df$待处理列 <- str_remove_all(df$待处理列, "^nda | \\(\\d+\\)$")
最终效果
处理后的数据框会变成:
| 待处理列 | 其他列1 | 其他列2 |
|---|---|---|
| nda | a | 10 |
| 20202 | b | 20 |
| 202392 | c | 30 |
| 2323 | d | 40 |
| 02232 | e | 50 |
其他列完全不受影响,符合预期需求。
内容的提问来源于stack exchange,提问作者Josh Goldstein
相关产品推荐
相关产品推荐

