删除两个单词之间的标点符号

时间:2016-03-13 16:25:03

标签: r

我有一个数据框(df),我想删除标点符号。

然而,在两个单词之间以及一个单词的结尾处出现问题是这样的:

test.
test1.test2

我用它来删除标点符号:

library(tm)
removePunctuation(df)

我得到的结果是:

 test
 test1test2

但我想结果如下:

test
test1 test2

如何在删除过程中在两个单词之间留出空格?

3 个答案:

答案 0 :(得分:4)

您可以使用chartr进行单字符替换:

chartr(".", " ", c("test1.test2"))
# [1] "test1 test2"

@akrun建议trimws删除测试字符串末尾的空格:

str <- c("test.", "test1.test2")
trimws(chartr(".", " ", str))
# [1] "test"        "test1 test2"

答案 1 :(得分:2)

我们可以使用gsub.替换为空格,并使用trimws删除尾随/前导空格(如果有)。

trimws(gsub('[.]', ' ', str1))
#[1] "test"        "test1 test2"

注意:在正则表达式中,.本身表示任何字符。因此,我们应该将其保留在方括号[.])内或将其转义(\\.)或使用选项fixed=TRUE

trimws(gsub('.', ' ', str1, fixed=TRUE))

数据

str1 <- c("test.", "test1.test2")

答案 2 :(得分:1)

您也可以使用deviceA, appX, regIdX(no matter how many accounts internally found) deviceA, appY, regIdY deviceB, appX, regIdX1

strsplit