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

R语言中如何避免separate函数错误分割,正确去除蛋白质末尾的_l?

解决方案:正确分割以_l结尾的蛋白质名称

问题原因

你用separate(protein_exp, c("protein", "l"), "_l")出错,是因为separate()默认会匹配第一个出现的_l子串作为分隔符,导致像p_lr1_l这类包含多个_的名称被错误拆分。

方法1:用extract()精准捕获目标内容

使用正则表达式的捕获组,锚定字符串末尾的_l,直接提取前缀和后缀:

library(tidyr)

# 示例数据
protein_exp <- tibble(protein = c("nr2_l", "nr1_l", "pkca_l", "p_lr1_l", "p_ln_l"))

# 执行提取
protein_exp %>%
  extract(protein, into = c("protein", "suffix"), regex = "^(.*)(_l)$")

执行后结果:

proteinsuffix
nr2_l
nr1_l
pkca_l
p_lr1_l
p_ln_l

方法2:直接去除末尾后缀(更简洁)

如果只需要得到去掉_l的蛋白质名称,不需要保留后缀列,用stringr包的str_remove()更直接:

library(stringr)

protein_exp %>%
  mutate(protein_clean = str_remove(protein, "_l$"))

_l$中的$是正则锚点,确保只匹配字符串末尾的_l,不会误删中间的_l子串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:20:14