如果找到某个子字符串,则更改变量(通过 for 循环)

Change variable if a certain substring has been found (via for loop)

如果 x 包含 4,我想将 "variable" 更改为 1。 我写的这段代码似乎不起作用,因为之后 执行它,变量仍然为零。我试图包括 "print (i)" 查看for循环是否到达x中的“4”,但只有“1” 打印。所以for循环似乎不会超过一个运行.... 有人能告诉我这段代码有什么问题吗?

 x=22356478998
    variable=0
    for(i in 1:length(x)){
    if( substr(x,start=i,stop=i)=="4"){
      variable=1
      break
    }
    }

您可以使用 stringr 包中的 str_detect()

library(stringr)
x=22356478998
variable <- ifelse(str_detect(x, "4"), 1, 0)

只需使用 grepl(在 base 中)

variable = as.integer(grepl("4", x))