我有一个数据框(df),我想删除标点符号。
然而,在两个单词之间以及一个单词的结尾处出现问题是这样的:
test.
test1.test2
我用它来删除标点符号:
library(tm)
removePunctuation(df)
我得到的结果是:
test
test1test2
但我想结果如下:
test
test1 test2
如何在删除过程中在两个单词之间留出空格?
答案 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