从R中的字符向量中删除引号?

时间:2015-01-03 04:20:46

标签: regex r quotes

我有一些文字:

version of mackinnon’s “dominance approach,”

我读到了一个字符向量:

> my.char.vector
[1] "version" "of" "mackinnon’s" "“dominance" "approach,”" 

如何删除双引号(和单引号),例如my.char.vector

[1] "version" "of" "mackinnons" "dominance" "approach," 

这个确切标题的另一个问题实际上并没有提出同样的问题 - 它试图在没有引号的情况下进行打印。我的角色向量中的元素确实包含引号,我试图将其删除。

4 个答案:

答案 0 :(得分:2)

您可以使用stringi。我们可以使用ICU元字符\\P来否定匹配的值,并使用--来减去逗号的否定。

library(stringi)
mcv <- c("version", "of", "mackinnon’s", "“dominance", "approach,”")
stri_replace_all_regex(mcv, "[\\P{Ll}--,]", "")
# [1] "version"    "of"         "mackinnons" "dominance"  "approach," 

我只是在学习ICU,但我认为这是正确的表达方式。

答案 1 :(得分:2)

qdap

的另一个选项
library(qdap)
strip(mcv, char.keep=',')
#[1] "version"    "of"         "mackinnons" "dominance"  "approach," 

或使用stringi

library(stringi)
stri_replace_all_regex(mcv, '[^[:alnum:],]+', '')
#[1] "version"    "of"         "mackinnons" "dominance"  "approach," 

base R

 vapply(regmatches(mcv,gregexpr('[A-Za-z,]+', mcv)), paste,
                                    collapse="", character(1L))
#[1] "version"    "of"         "mackinnons" "dominance"  "approach," 

数据

mcv <- c("version","of","mackinnon’s","“dominance","approach,”")

答案 2 :(得分:1)

这些&#34;幻想&#34;引用 - 我剪切&amp;从屏幕粘贴它们(如果你只是使用SHIFT - &#39; [或键盘上的任何东西]你只会得到常规&#34;引号......)。

mcv <- c("version","of","mackinnon’s","“dominance","approach,”")
gsub("[’”“]","",mcv)

另一种可能性(似乎可以在我的系统上运行但可能是系统/语言环境/等特定的?):将奇怪的字符转换为&#34;#&#34;或其他安全的东西,然后摆脱它们。

gsub("#","",iconv(mcv,"latin1","ASCII","#"))

答案 3 :(得分:1)

试试这个。

gsub("[^[:print:]]", "", my.char.vector)