我有一些文字:
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,"
这个确切标题的另一个问题实际上并没有提出同样的问题 - 它试图在没有引号的情况下进行打印。我的角色向量中的元素确实包含引号,我试图将其删除。
答案 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)