繁体   English   中英

用R中的数字替换向量中的字符元素

[英]Replace Character Elements in vector with Numbers in R

我有一个包含字符串/字符元素的数据帧中的向量,并且我想根据数字是否包含某些字符组来用数字替换这些字符串/字符元素,我想知道如何才能做到这一点。 例如,假设我有一个带有字符串元素的数据框中的列,如下所示:

df$Stringvector <- c("aaca", "bbb", "edee", "ca bb" "ttt t", "ui de", "k jkl")

现在,我想做的是如果元素具有字符组合cade ,则将矢量的元素替换为1如果元素不包含任何组合,则将其替换为2 由于df$Stringvector的第1,第3,第4和第6个元素在其字符串中具有cade ,因此将它们替换为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM