r - 如何在 R 中使用 gsub() 函数替换 '+'

标签 r regex dataframe gsub

<分区>

我正在尝试删除数据框的字符串元素之一中存在的“+”字符。但我找不到解决方法。

下面是数据框。

txtdf <- structure(list(ID = 1:9, Var1 = structure(c(1L, 1L, 1L, 1L, 4L, 
            5L, 5L, 2L, 3L), .Label = c("government", "parliament", "parliment", 
            "poli+tician", "politician"), class = "factor")), .Names = c("ID", 
            "Var1"), class = "data.frame", row.names = c(NA, -9L))
#  ID   Var1
#  1    government
#  2    government
#  3    government
#  4    government
#  5    poli+tician
#  6    politician
#  7    politician
#  8    parliament
#  9    parliment

我试了两种方法,都没有达到预期的效果:

方式一

txtdf <- gsub("[:punct:]","", txtdf)
# [1] "goverme" "goverme" "goverme" "goverme" "oli+iia" "oliiia"  "oliiia" 
# [8] "arliame" "arlime" 

我不明白这里出了什么问题。我希望将第 5 个元素的“+”字符替换为没有值,但所有元素都按上述方式编辑。

方式2

txtdf<-gsub("*//+","",txtdf)
# [1] "government"  "government"  "government"  "government"  "poli+tician"
# [6] "politician"  "politician"  "parliament"  "parliment" 

这里完全没有变化。我想我已经尝试过的是,我尝试使用双斜杠转义 + 字符。

最佳答案

只需将其替换为 fixed = TRUE(无需使用正则表达式),但您必须通过指定列名来替换 data.frame 的每个“列”:

txtdf <- data.frame(job = c("government", "poli+tician", "parliament"))
txtdf

给予

          job
1  government
2 poli+tician
3  parliament

现在替换“+”:

txtdf$job <- gsub("+", "", txtdf$job, fixed = TRUE)
txtdf

结果是:

         job
1 government
2 politician
3 parliament

关于r - 如何在 R 中使用 gsub() 函数替换 '+',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43965949/

相关文章:

r - 为什么我在 Julia 中使用 dropmissing 或 skipmissing 会得到不同的结果?

javascript - 通过正则表达式用输入替换单词

R data.table 子集子集

python - 将数字数据分组到分箱范围内

r - H2O:退出时保留-ice_root?

r - 在一组中找到对应于另一组中最大值的值,然后从另一列中减去该值

javascript - JDE/儒略时间 : How to format julian time stamp number

r - 摆脱 R 中具有重复属性的行

r - dplyr 过滤列是否以列表中的字符串之一开头

javascript - 在javascript中将匹配的数据获取到数组中,而不使用任何循环