如何在R中使用dplyr提取列元素的起始名称并替换原值?
使用dplyr清理names列:提取起始英文名称
针对你需要处理的10万行数据,我们可以借助dplyr结合stringr(tidyverse套件包含这两个包)的字符串处理功能,快速提取names列开头的纯字母部分,去掉后续的数字和字符。
完整实现代码
library(tidyverse) # 构造示例数据 names = c("John123abc","George12894xyz","Mary789qwe") value = c(1,2,3) dat = tibble(names,value) # 处理names列:提取开头的连续字母 dat_cleaned <- dat %>% mutate(names = str_extract(names, "^[A-Za-z]+")) # 查看结果 dat_cleaned
代码说明
str_extract(names, "^[A-Za-z]+"):用正则表达式匹配并提取目标内容^:匹配字符串的起始位置[A-Za-z]:匹配任意大小写英文字母+:表示匹配前面的字符(字母)一次或多次,确保提取完整的起始名称
处理后得到的结果如下:
| names | value |
|---|---|
| John | 1 |
| George | 2 |
| Mary | 3 |
这个方法效率足够处理10万行的数据,无需担心性能问题。
内容的提问来源于stack exchange,提问作者Homer Jay Simpson
相关产品推荐
相关产品推荐

