R 删除字符串

R 删除字符串,r,R,我有一根绳子 "Manager *?position (is not *# filled" 我需要这个 "Manager position is not filled" 我试过: paste(strsplit(st, "[*?(#]")[[1]],collapse="") 但是,间距不正确 谢谢。可以试试 gsub("[[:punct:] ]+"," ", st) 或 虽然如果您想使用strsplit(),后者将返回一个额外的空格,但我认为这种方法应该正确地使用空格 > st

我有一根绳子

"Manager *?position (is not *# filled"
我需要这个

"Manager position is not filled" 
我试过:

 paste(strsplit(st, "[*?(#]")[[1]],collapse="")
但是,间距不正确

谢谢。

可以试试

gsub("[[:punct:] ]+"," ", st) 


虽然如果您想使用strsplit(),后者将返回一个额外的空格,但我认为这种方法应该正确地使用空格

> st <- "Manager *?position (is not *# filled"
> ss <- strsplit(st, "[[:punct:]]|\\s")[[1]]
> paste(ss[nzchar(ss)], collapse = " ")
# [1] "Manager position is not filled"
>st ss粘贴(ss[nzchar(ss)],collapse=“”)
#[1]“经理职位未填补”

或者,您可以使用软件包
stringr
,空间由以下人员管理:

string  <- "Manager *?position (is not *# filled"
str_replace_all(string = string, pattern = "[[:punct:]]+", replacement = "")

string使用qdap的方法:

st <- "Manager *?position (is not *# filled"

library(qdap)
clean(strip(st, lower.case = FALSE))

## [1] "Manager position is not filled"

st您可以将其修改为:gsub(“[[:punct:]+”,“”,st)[1]“经理职位未满”以获得额外空间。好主意@arkun,修改类似于
nzhar
函数。我想如果你使用:粘贴(strsplit(st,“[:punct:][]+”[1]],collapse=“”)[1]“经理职位未满”,可以避免
nzchar
不确定为什么有人喜欢使用3个不同的函数而不是一个
gsub
…@David。是的,
gsub
代码较短,但
Richard
回答了如何纠正我的错误code@will,代替
nzchar
,您也可以只执行
ss[ss!=“”]
。“对于这个问题,结果是一样的。”理查德。谢谢我喜欢泰勒的
帖子中的
clean
。清洁(粘贴(ss,collapse=“”))
st <- "Manager *?position (is not *# filled"

library(qdap)
clean(strip(st, lower.case = FALSE))

## [1] "Manager position is not filled"