我试图删除出现在字符串末尾的所有破折号,并且我的代码导致R崩溃。任何可能导致此问题的调整或代码修复将不胜感激!
acct_nm = str_replace_all(acct_nm, "[:punct:]+", "")
不是,我将其包装为mutate的一部分,不幸的是,我无法显示我的所有代码或包含我的数据。基本上,我只希望它用acct_nm替换acct_nm变量-任何结尾的标点符号。
作为一个例子,我希望它的工作类似于下面的代码,其中变量y删除了所有尾随的标点符号。
library(tidyverse)
test <- data.frame(x = 1:3, y = 'hello-./') %>%
mutate(z = str_replace_all(y, "[:punct:]+", ""))
答案 0 :(得分:1)
您可以尝试使用sub
/ gsub
并删除字符串末尾的标点符号
sub('[[:punct:]]+$', '', test$y)
#[1] "-hello" "-hello" "-hello"
数据
test <- data.frame(x = 1:3, y = '-hello-./')
答案 1 :(得分:0)
您可以尝试
df$z <- with(df,gsub("(.*?)[[:punct:]]+$","\\1",y))
使用给定的数据帧df <- data.frame(x = 1:3, y = 'hello-./')
,您将得到
> df
x y z
1 1 hello-./ hello
2 2 hello-./ hello
3 3 hello-./ hello