首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何替换R中数字旁边的字符而不是字母数字旁边的字符

如何替换R中数字旁边的字符而不是字母数字旁边的字符
EN

Stack Overflow用户
提问于 2020-10-23 00:06:21
回答 2查看 47关注 0票数 0

我有这根绳子

代码语言:javascript
复制
char <- "866224; Genoma viral SARS-CoV-2: Detectable; 1096628; Genoma viral SARS-CoV-2: No detectable"

我需要替换;在数字的旁边,用\{e76f}下面的字母数字:

代码语言:javascript
复制
"866224| Genoma viral SARS-CoV-2: Detectable; 1096628| Genoma viral SARS-CoV-2: No detectable"

我和str_replace_all在一起

代码语言:javascript
复制
str_replace_all(char, "[0-9];", "|")

但是去掉最后一个号码。

代码语言:javascript
复制
"86622| Genoma viral SARS-CoV-2: Detectable; 109662| Genoma viral SARS-CoV-2: No detectable"

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-23 01:26:39

{stringr}包允许查看头和查找,您可以使用它们而不是实际捕获最后一个数字,然后粘贴它:

代码语言:javascript
复制
char <- "866224; Genoma viral SARS-CoV-2: Detectable; 1096628; Genoma viral SARS-CoV-2: No detectable"
str_replace_all(char, "(?<=[0-9]);", "|")
#> [1] "866224| Genoma viral SARS-CoV-2: Detectable; 1096628| Genoma viral SARS-CoV-2: No detectable"

查找后面的(?<=...)基本上检查后面的表达式是否前面有...。如果您想在baseR中使用它,那么:

代码语言:javascript
复制
gsub("(?<=[0-9]);", "|", char, perl=TRUE)
#> [1] "866224| Genoma viral SARS-CoV-2: Detectable; 1096628| Genoma viral SARS-CoV-2: No detectable"
票数 1
EN

Stack Overflow用户

发布于 2020-10-23 00:49:45

在您的示例中,将数字和分号替换为|。相反,您可以用括号捕获数字,并在表达式中用\\1替换它。

代码语言:javascript
复制
library(stringr)

char <- "866224; Genoma viral SARS-CoV-2: Detectable; 1096628; Genoma viral SARS-CoV-2: No detectable"

str_replace_all(char, "([0-9]);", "\\1|")
#> [1] "866224| Genoma viral SARS-CoV-2: Detectable; 1096628| Genoma viral SARS-CoV-2: No detectable"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64492166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档