R语言中从DataFrame提取不含.jpg的名称与数字
R语言提取DataFrame中LEAF列的无后缀内容
方法1:使用str_remove直接删除后缀(更直观)
这种方法直接定位字符串末尾的.jpg并移除,代码简洁且不易出错:
library(tidyverse) # 构造测试数据 df <- tibble(LEAF = c("ARG 1.jpg", "BRA 2.jpg", "COL 3.jpg")) # 提取无后缀内容 df_clean <- df %>% mutate(LEAF_clean = str_remove(LEAF, "\\.jpg$"))
方法2:使用str_extract搭配正则匹配
如果坚持用str_extract,可以通过正向先行断言匹配.jpg之前的所有内容(包括空格):
df_clean <- df %>% mutate(LEAF_clean = str_extract(LEAF, "^.*(?=\\.jpg)"))
正则说明:
^:匹配字符串开头.*:匹配任意字符(包括空格),直到满足后续条件(?=\\.jpg):正向预查,确保后面紧跟.jpg,但不将其纳入匹配结果
输出结果
两种方法都会得到如下处理后的DataFrame:
# A tibble: 3 × 2 LEAF LEAF_clean <chr> <chr> 1 ARG 1.jpg ARG 1 2 BRA 2.jpg BRA 2 3 COL 3.jpg COL 3
处理后的LEAF_clean列即可直接用于和其他DataFrame的比对。
内容的提问来源于stack exchange,提问作者Miguel Angel Acosta Chinchilla
相关产品推荐
相关产品推荐

