我正在try 解析以下字符串,其中我想复制字符串开头的登录号以添加到"]"之后,请注意,"x"之前的数字可以是任何数字,这就是为什么我在这里称它为"d".这个"]; dPhospho"的模式是我需要匹配的.

# Sample dataframe
DT <- data.frame(Positions.in.Master.Proteins = c("Q8R149 2xPhospho [T131(100); T/S]; 2xPhospho [T157(100); T/S]",
                                                  "Q9UET0 3xPhospho [S23(90); T63(70); Y67(70)]; 3xPhospho]"))

输出将如下所示;

[1] "Q8R149 2xPhospho [T131(100); T/S]; **Q8R149** 2xPhospho [T157(100); T/S]"

[2] "Q9UET0 3xPhospho [S23(90); T63(70); Y67(70)]; **Q9UET0** 3xPhospho]"

现在您可以看到注册号被复制到我需要它们的位置.谢谢!

推荐答案

使用gsubfn包,您可以使用sub提取您的登录号,并直接将其视为替换.

library(gsubfn)

unname(
  sapply(DT$Positions.in.Master.Proteins, 
         \(i) gsubfn(pattern = "; \\dxPhospho", 
                     replacement = \(x) paste0("; ", sub(" \\[.*", "", i)), 
                     x = i))
  )

[1] "Q8R149 2xPhospho [T131(100); T/S]; Q8R149 2xPhospho [T157(100); T/S]"
[2] "Q9UET0 3xPhospho [S23(90); T63(70); Y67(70)]; Q9UET0 3xPhospho]"  

R相关问答推荐

如何在ggplot 2 geom_segment图表中将UTC转换为EET?

在ggplot的注释表格中突出显示最大值

使用sensemakr和fixest feols模型(R)

咕噜中的元素列表:map

查找图下的面积

大规模重新标记haven标签数据

如何在R中添加截止点到ROC曲线图?

ggplot2中的X轴显示数值,单位为百,而不是十

如果第一个列表中的元素等于第二个列表的元素,则替换为第三个列表的元素

使用列/行匹配将两个不同维度的矩阵相加

提取一个列表中单个列的重复观察结果R

按多列统计频次

KM估计的差异:SvyKm与带权重的调查

如何计算增加10米(0.01公里)的行?

删除数据帧中特定行号之间的每第三行和第四行

是否可以将线性模型的p值添加到tbl_summary中

如何构建一个for循环来循环处理动物ID?

计算多变量的加权和

使用列名和r中的前缀 Select 列的CREATE函数

将CSV转换为R中的自定义JSON格式