我有一个数据帧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
答案 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"