Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.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
R中qdap包中的Strip函数-错误删除斜杠_R_Character_Strip_Qdap - Fatal编程技术网

R中qdap包中的Strip函数-错误删除斜杠

R中qdap包中的Strip函数-错误删除斜杠,r,character,strip,qdap,R,Character,Strip,Qdap,我有一个文本文件,有几百行长。我正在尝试从中删除除“/”字符以外的所有[edit:add]标点字符。我目前正在qdap包中使用strip函数 以下是一个示例数据集: htxt <- c("{rtf1ansiansicpg1252cocoartf1038cocoasubrtf360/", "{fonttblf0fswissfcharset0 helvetica", "margl1440margr1440vieww9000viewh8400viewkind0"

我有一个文本文件,有几百行长。我正在尝试从中删除除“/”字符以外的所有[edit:add]标点字符。我目前正在qdap包中使用strip函数

以下是一个示例数据集:

htxt <- c("{rtf1ansiansicpg1252cocoartf1038cocoasubrtf360/", 
        "{fonttblf0fswissfcharset0 helvetica",
        "margl1440margr1440vieww9000viewh8400viewkind0")
这个漂亮函数的唯一问题是它删除了“/”字符。如果我尝试删除除“{”字符以外的所有字符,它将起作用:

strip(htxt, char.keep = "{", digit.remove = F, apostrophe.remove = TRUE, lower.case = TRUE)

有人遇到过同样的问题吗?

无论出于何种原因,qdap:::strip总是从字符向量中剥离
“/”
。这在函数末尾的源代码中:

x <- clean(gsub("/", " ", gsub("-", " ", x)))
软件包作者在该网站上非常活跃,因此他可能会澄清为什么
strip
默认情况下会这样做。

为什么不:

> gsub("[^/]", "", htxt)
[1] "/" ""  "" 
根据@SimonO101的澄清,正则表达式方法可能是:

gsub("[]!\"#$%&'()*+,.:;<=>?@[^_`{|}~-]", "", htxt)
gsub(“[]!\”\$%和“()*+,.:;?@[^ `{124;}-],”,htxt)
请注意,该序列中的第一项是“]”,最后一项是“-”,需要转义双引号。这是删除“\”后[:punct:]的目标。要以编程方式执行此操作,可以使用:

rem.some.punct <- function(txt, notpunct=NULL){ 
       punctstr <- "[]!\"#$%&'()*/+,.:;<=>?@[^_`{|}~-]"
       rempunct <- gsub(paste0("",notpunct), "", punctstr)
       gsub(rempunct, "", txt)}

rem.some.punct尽管帖子中的措辞有点含糊不清,但这并不是OP想要的。他们想要返回的文本没有不需要的字符(我能告诉你的最好方法是基本上删除标点符号和非字母数字字符,而不是你想要保留的字符).好吧,好吧,问题的措辞完全不正确!我的假设基于lat代码行,该代码行显然包含了应用该函数的正确结果。@Tylerlinker happy holidays!通常会将程序包的新闻文件中发现的错误归为属性。我希望您能说出您的名字,以便归为信用。您可以查看程序包ma请为qdap保存电子邮件并向我发送电子邮件。感谢您查找和报告此信息。以后可以直接使用github repo报告问题或功能请求:
gsub("[]!\"#$%&'()*+,.:;<=>?@[^_`{|}~-]", "", htxt)
rem.some.punct <- function(txt, notpunct=NULL){ 
       punctstr <- "[]!\"#$%&'()*/+,.:;<=>?@[^_`{|}~-]"
       rempunct <- gsub(paste0("",notpunct), "", punctstr)
       gsub(rempunct, "", txt)}