我正在尝试编辑数据帧的每一行中的每个字符串。例如这个数据框:
df <- data.frame( words = c("Three can keep a secret, if two of them are dead."))
我的目标是在每隔三个字后填写一个“\ b”,所以我的数据框应如下所示:
df2 <- data.frame(words = c("Three can keep \b a secret, if \b two of them \b are dead."))
我已经尝试使用gsub()和模式“\\ s {3}”,但它不起作用。 这个操作的正确表达式如何?
答案 0 :(得分:2)
你也必须允许这些字母。这应该可以让你了解
之后的情况df2 <- within(df1, words <- gsub("(([A-Za-z1-9.,']+\\s){3})","\\1\b ", words))
如果你有很多标点符号要解决这个问题,这可能会更好(我只是在寻找。,以及&#39;以上:
df2 <- within(df1, words <- gsub("((\\S+\\s){3})","\\1\b ", words))