Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gsub问题和str_替换_全部在R中_R - Fatal编程技术网

gsub问题和str_替换_全部在R中

gsub问题和str_替换_全部在R中,r,R,我需要将以下格式的38种不同类型的表达式替换为正则表达式,如“IDENTIFIER:ABC:DEF”、“IDENTIFIER:GHI:JKL”,如“apple”和“banana”。我尝试使用str_replace_all,格式如下: df$column <- df$column %>% str_replace_all("IDENTIFIER:ABC:DEF", "apple") df$column <- df$column %>% str_replace_

我需要将以下格式的38种不同类型的表达式替换为正则表达式,如
“IDENTIFIER:ABC:DEF”、“IDENTIFIER:GHI:JKL”
,如
“apple”
“banana”
。我尝试使用str_replace_all,格式如下:

    df$column <- df$column %>% str_replace_all("IDENTIFIER:ABC:DEF", "apple")
    df$column <- df$column %>% str_replace_all("IDENTIFIER:GHI:JKL", "banana")
df$列%str\u replace\u all(“标识符:ABC:DEF”,“苹果”)
df$列%str\u replace\u all(“标识符:GHI:JKL”、“香蕉”)
然而,由于某些原因,R只处理我大约一半的请求。我已经反复检查错误,并试图分解代码,但没有成功

然后我用gsub做了同样的尝试:

    df$column <- gsub(df$column, "IDENTIFIER:ABC:DEF", "apple") 
    df$column <- gsub(df$column, "IDENTIFIER:GHI:JKL", "banana") 

同名包中的
df$column
gsubfn
提供了
gsub
功能的超集,特别是它可以选择使用列表代替字符串。对于正则表达式的每个匹配项,如果匹配项等于其中一个列表名,则替换为相应的列表值

library(gsubfn)

x <- "xyz IDENTIFIER:ABC:DEF abc IDENTIFIER:GHI:JKL def" # test input
L <- list("IDENTIFIER:ABC:DEF" = "apple", "IDENTIFIER:GHI:JKL" = "banana")
gsubfn("\\y\\S+\\y", L, x)   
## [1] "xyz apple abc banana def"

同名包中的
gsubfn
提供了
gsub
功能的超集,特别是它可以选择将列表替换为字符串。对于正则表达式的每个匹配项,如果匹配项等于其中一个列表名,则替换为相应的列表值

library(gsubfn)

x <- "xyz IDENTIFIER:ABC:DEF abc IDENTIFIER:GHI:JKL def" # test input
L <- list("IDENTIFIER:ABC:DEF" = "apple", "IDENTIFIER:GHI:JKL" = "banana")
gsubfn("\\y\\S+\\y", L, x)   
## [1] "xyz apple abc banana def"

gsub
需要输入模式、替换值和x。因此,在您的情况下,您应该编写
gsub(“标识符:ABC:DEF”,“苹果”,df$column)
gsub(pattern=“标识符:ABC:DEF”,replacement=“苹果”,x=df$column)
比较这两个函数的文档:它们的参数顺序不一样谢谢@dc37-这是一个错误
gsub
需要使用模式输入,替换_值和x。因此,在您的情况下,您应该编写
gsub(“标识符:ABC:DEF”,“apple”,df$列)
gsub(pattern=“IDENTIFIER:ABC:DEF”,replacement=“apple”,x=df$列)
比较两个函数的文档:它们的参数顺序不一样谢谢@dc37-这是错误