Je veux trouver plusieurs chaînes et les mettre dans une variable, mais je reçois toujours des erreurs.
queries <- httpdf %>% filter(str_detect(payload, "create" || "drop" || "select"))
Error: invalid 'x' type in 'x || y'
queries <- httpdf %>% filter(str_detect(payload, "create" | "drop" | "select"))
Error: operations are possible only for numeric, logical or complex types
queries1 <- httpdf %>% filter(str_detect(payload, "create", "drop", "select"))
Error: unused arguments ("drop", "select")
Rien de tout cela n'a fonctionné. Existe-t-il une autre façon de le faire avec str_detect
ou devrais-je essayer autre chose? Je veux qu'ils apparaissent également dans la même colonne.
Un moyen encore plus simple, à mon avis, pour votre liste assez courte de chaînes que vous souhaitez trouver peut être:
queries <- httpdf %>% filter(str_detect(payload, "create|drop|select"))
Comme c'est en fait ce
[...]
paste(c("create", "drop", "select"),collapse = '|'))
[...]
fait, comme recommandé par @penguin avant.
Pour une liste plus longue de chaînes que vous souhaitez détecter, je voudrais d'abord stocker les chaînes uniques dans un vecteur, puis utiliser l'approche de @ penguin, par exemple:
strings <- c("string1", "string2", "string3", "string4", "string5", "string6")
queries <- httpdf %>%
filter(str_detect(payload, paste(strings, collapse = "|")))
Cela a l'avantage que vous pouvez facilement utiliser le vecteur strings
plus tard si vous le souhaitez ou devez le faire.
C'est une façon de résoudre ce problème:
queries1 <- httpdf %>%
filter(str_detect(payload, paste(c("create", "drop", "select"),collapse = '|')))