You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中缩写数据框物种名并保留第二部分

物种名缩写处理方案

你的问题出在正则表达式的写法上:(?<=.).*$会匹配首字母之后的所有字符并替换为空,自然只留下首字母。要保留种加词,需要用捕获组分别提取属名首字母和种加词,再重新拼接。

方法1:Base R 直接赋值

使用sub()配合捕获组,精准替换属名部分:

df$species2 <- sub("^(\\w)\\w+\\s(.*)$", "\\1. \\2", df$species)
  • 正则解释:
    • ^(\\w):捕获属名的第一个字母
    • \\w+\\s:匹配属名剩余的字母和后面的空格
    • (.*)$:捕获空格后的所有内容(即种加词)
    • \\1. \\2:将捕获的首字母加.,再拼接种加词

方法2:dplyr::mutate 生成新列

如果你习惯用tidyverse语法,直接用mutate():

library(dplyr)
df <- df %>% 
  mutate(species2 = sub("^(\\w)\\w+\\s(.*)$", "\\1. \\2", species))

测试示例:

输入:"Abies bornmuelleriana"
输出:"A. bornmuelleriana"

内容的提问来源于stack exchange,提问作者Tristan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 10:47:03