查找字符串是否有两个斜杠并替换它

时间:2018-05-25 03:07:21

标签: r regex

我有一个数据帧col2,我想检查它的列“color2”是否有超过2种颜色。

    color2
1   white
2   black/red
3   yellow
4   pink
5   purple/blue/red

目前,我知道如何找到字符串中是否包含斜杠,但不知道如何找到该字符串有2个斜杠。

代码:

grepl("/", col2$color2)

之后,我希望将其替换为“2”,如下所示:

    color2
1   white
2   black/red
3   yellow
4   pink
5   2

1 个答案:

答案 0 :(得分:2)

我们可以使用grepl查找双斜线和replace值。 .*允许两个斜杠之间的0个或多个字符。

col2$color2 <- with(col2, replace(color2, grepl("/.*/", color2), 2))

color2
#1     white
#2 black/red
#3    yellow
#4      pink
#5         2

我们还可以使用str_count包中的stringr来计算&#34; /&#34;的出现次数。并使用ifelse

替换值
library(stringr)
ifelse(str_count(col2$color2, "/") > 1, "2", col2$color2)

#[1] "white"     "black/red" "yellow"    "pink"      "2"