[英]Replace Character Elements in vector with Numbers in R
我有一个包含字符串/字符元素的数据帧中的向量,并且我想根据数字是否包含某些字符组来用数字替换这些字符串/字符元素,我想知道如何才能做到这一点。 例如,假设我有一个带有字符串元素的数据框中的列,如下所示:
df$Stringvector <- c("aaca", "bbb", "edee", "ca bb" "ttt t", "ui de", "k jkl")
现在,我想做的是如果元素具有字符组合ca
或de
,则将矢量的元素替换为1
如果元素不包含任何组合,则将其替换为2
。 由于df$Stringvector
的第1,第3,第4和第6个元素在其字符串中具有ca
和de
,因此将它们替换为1
,而将所有其他元素替换为2
以便我们现在获得:
df$Stringvector <- c(1,2,1,1,2,1,2)
什么是这样做的好方法? 谢谢!
您可以使用grepl
找到模式。
> as.numeric(!grepl("ca|de", x)) + 1
[1] 1 2 1 1 2 1 2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.