У меня есть список электронных писем, я хочу сравнить с столбцом БД с именем correo
(spani sh для электронной почты).
Итак, допустим, это список электронных писем для использования:
users_emails <-"18maryalma@gmail.com|2013311097@edu.pe|40491118@cotal.edu.pe|956145120jh@gmail.com|975625735o@gmail.com"
При использовании case_when
и grepl
для сопоставления их с базой данных я получаю:
Error in grepl(users_emails, correo, ignore.case = TRUE) :
invalid regular expression '18maryalma@gmail.com|2013311097@edu.pe...
Код:
db <- db %>%
mutate(
secciones = case_when(
grepl(users_emails,
correo, ignore.case = TRUE) ~ TRUE)
)
данные:
db <- structure(list(idusuario = c(2L, 3L, 6L, 8L, 10L, 11L), ecoid = c(47L,
1878686L, 355078L, 2667803L, 2680290L, 2680842L), facebookid = c(0,
0, 0, 0, 0, 0), twitterid = c(0L, 0L, 0L, 0L, 0L, 0L), googleid = c(0L,
0L, 0L, 0L, 0L, 0L), nombres = c("carlos", "Max", "Estibens Manuel",
"Hernan", "angie", "Dennys Dante"), apellidos = c("gdrab", "Palomino",
"' or 1=1", "Galvez", "cotaquispe palomino", "Angeles"), correo = c("cfrasan@gmail.com",
"maxpalominomendoza@gmail.com", "estibensmanchego@gmail.com",
"hgb2431@gmail.com", "patito_luz_07@hotmail.com", "dangeles@americatv.com.pe"
), nickname = c("cfrasan666", NA, "estibensmancheg", NA, NA,
NA), genero = c("M", "M", "M", "M", NA, "M"), avatar = c("http://peruid.e3.pe/ima/0/0/0/0/0/thumb/1338410240_47.jpg",
"http://peruid.pe/f/i/gadget/avatar-4.jpg", "http://peruid.pe/f/i/gadget/avatar-6.jpg",
"http://s.elcomercio.pe/uploads/default.jpg", "http://s.elcomercio.pe/uploads/default.jpg",
"http://s.elcomercio.pe/uploads/default.jpg"), avatar_url = c("http://peruid.e3.pe/ima/0/0/0/0/0/thumb/avatar/1338410240_47.jpg",
"http://peruid.pe/f/i/gadget/avatar-4.jpg", "http://peruid.pe/f/i/gadget/avatar-6.jpg",
"http://s.elcomercio.pe/uploads/default.jpg", "http://s.elcomercio.pe/uploads/default.jpg",
"http://s.elcomercio.pe/uploads/default.jpg"), status = c(0L,
0L, 0L, 0L, 0L, 0L), fecha = c("1997-03-01", "1986-02-02", "1986-04-22",
"1984-03-15", "0000-00-00", "1984-05-28"), version = c(34L, 49L,
99L, 11L, 1L, 2L), pais = c("PE", "PE", "PE", "PE", "PE", "PE"
), suscriptor = c(0L, 0L, 0L, 0L, NA, 0L), telefono = c("95286265",
"965312230", "014274434", "976926796", NA, "981306661"), ciudad = c("Lima y Callao",
"Lima y Callao", "Lima y Callao", "Lima y Callao", NA, "Lima"
), acceso = c(NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_), clave = c("sha256:1024:OT9jxBY0cGm+hC3ZQqx+HqE12uAuaqzG:rYTfX",
"sha256:1024:ddreAcaw8oRPeoE/s5rO/+eMpypBjYyv:MqAYX", "sha256:1024:GqbedkIqtC/ersJvwCPnn78ztIj0CJMR:jOrp+",
"sha256:1024:7P6+L6h/nQawwFXs9q/Ri9gDzOOstWKk:JwsVX", "sha256:1024:jdrS3ctfG1aa9sNY4csqo/f306T6yyqy:LQtMu",
"sha256:1024:lbiQYFd668n2E+5zg5bLk0QpeULUJ+Xn:fUtYv"), nueva_clave_key = c(NA,
"", "2cc9b4cf343011eb94b3cc685f1c91b87f1974db", "", NA, NA),
nueva_clave_requested = c(NA, "2016-01-29 17:45:34", "2015-08-02 18:57:44",
"2015-07-08 12:30:17", NA, NA), acepto_politicas = c(1L,
1L, 1L, 1L, NA, 1L), fecha_registro = c("0000-00-00 00:00:00",
"0000-00-00 00:00:00", "0000-00-00 00:00:00", "0000-00-00 00:00:00",
"0000-00-00 00:00:00", "0000-00-00 00:00:00"), fecha_actualizado = structure(c(1485147600,
1535950800, 1498280400, 1498798800, 1481346000, 1488517200
), class = c("POSIXct", "POSIXt"), tzone = ""), dni = c("41764577",
"41773997", "44548862", "42311024", "", "42381593"), direccion = c("jose mariategui S/n",
"Calle rosacruces 270 San Gregorio are vitarte", "Av. Emancipacion 153 int. 304",
"Carlos alayza y roel 2331", "", "Av Jose Leguia y Melendez 1837"
), apellido_ma = c("rinjo", "Mendoza", "Melendez", "Bellido",
"", "Fuentes"), envio = c("", "", "", "", "", ""), envio_fecha = c("0000-00-00 00:00:00",
"0000-00-00 00:00:00", "0000-00-00 00:00:00", "0000-00-00 00:00:00",
"0000-00-00 00:00:00", "0000-00-00 00:00:00"), paquete_suscriptor = c("0",
"1", "0", "1", "0", "0"), paquete_suscriptor_fecha = c("2016-12-23 12:45:18",
"2017-02-16 15:10:37", "0000-00-00 00:00:00", "2016-10-21 10:08:05",
"0000-00-00 00:00:00", "0000-00-00 00:00:00"), departamento = c(15L,
15L, 15L, 15L, 0L, 15L), provincia = c(6L, 1L, 1L, 1L, 0L,
1L), distrito = c(2L, 3L, 1L, 16L, 0L, 21L), ga_userid_is_in_db = c(NA,
NA, NA, NA, NA, NA), secciones = c(NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_
)), row.names = c(NA, 6L), class = "data.frame")
ОБНОВЛЕНИЕ 1:
По-прежнему возникают ошибки, это были не электронные письма, но также случаются при использовании чисел (в виде строк).
Кто-нибудь знает, как это сделать с таблицей данных?
ОБНОВЛЕНИЕ 2 :
Также должно работать с идентификаторами номеров:
users_ids <- dput(head(users_ids))
c(996683L, 996177L, 994826L, 991164L, 991L, 990744L)
Код:
setDT(db)[Reduce(`|`, lapply(users_ids, function(es)
grepl(es, idusuario, ignore.case = TRUE))), ga_usersids_in_db := TRUE][]