Con parse_number sacaria todos los numeros de la columna, pero lo que busco es sacar solo los que empiezan por AV y descartar el resto. De todas maneras muchas gracias, le voy a dar otra vuelta. ________________________________ De: Juan Carlos Lopez Mesa <jclopez5 en unal.edu.co> Enviado: martes, 22 de septiembre de 2020 21:32 Para: Samura . <tontito82 en hotmail.com> Cc: r-help-es en r-project.org <r-help-es en r-project.org> Asunto: Re: [R-es] Encontrar un dato y a?adirlo a otra columna Hola, prueba con esto df %>% mutate(var = parse_number(nombre1)) Saludos El mar., 22 sept. 2020 a las 15:46, Samura . (<tontito82 en hotmail.com<mailto:tontito82 en hotmail.com>>) escribi?: Buenas, A ver si alguien sabe como hacer lo siguiente: Tengo un df con letras y numeros, quiero que si me detecta un numero en concreto me a?ada dicho numero en otra columna. Algo asi df<-data.frame(c("AV 23","PEPE 34","QWE","AV 24","WERRR ER34","AV 25")) colnames(df)<-c("nombre1") df[grepl("AV 23",df$nombre1), "Nombre1_numero"]= "23" df[grepl("AV 24",df$nombre1), "Nombre1_numero"]= "24" df[grepl("AV 25",df$nombre1), "Nombre1_numero"]= "25" df nombre1 Nombre1_numero AV 23 23 PEPE 34 NA QWE NA AV 24 24 WERRR ER34 NA AV 25 25 osea, busca AV 23, 24, 25 en la columna, si lo encuentras pon el numero en otra columna, el resto de datos NA como son muchos, para no repetir siempre lo mismo habia pensado en algo asi df[grepl("AV \\d{2}",df$nombre1), "Nombre1_numero"]= "\\d{2}" pero no se como poner ese "\\d{2}" ultimo para que me coloque el numero. ?Alguna idea? [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org<mailto:R-help-es en r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es ?Esta transmisi?n electr?nica es propiedad de la Universidad Nacional de Colombia, su contenido es confidencial y ?nicamente lo puede recibir la persona o entidad a quien va dirigido. Se proh?be: Usar esta informaci?n para prop?sitos ajenos a la Universidad, divulgar su contenido a personas externas, reproducir total y/o parcialmente la informaci?n contenida. No se asume responsabilidad sobre informaci?n, opiniones o criterios contenidos en este correo electr?nico que no est?n relacionados con la Universidad. Si usted no es el destinatario de este correo electr?nico, se le notifica que el uso de esta informaci?n, as? como su difusi?n, distribuci?n o copia, est? estrictamente prohibida, por favor notifique al remitente inmediatamente por este mismo medio y elimine lo antes posible este mensaje. La Universidad Nacional de Colombia, identificada con NIT 899.999.063, con domicilio principal en la ciudad de Bogot? D.C. en la Carrera 45 # 26-85 Edif. Uriel Guti?rrez Bogot? D.C., Colombia y con tel?fono (+57 1) 316 50 00, en cumplimiento de la Ley 1581 de 2012 y el art?culo 15 del Decreto 1377 de 2013, como responsable del tratamiento de informaci?n de datos personales, desea informar a todas las personas cuyos datos personales se encuentran en nuestras bases de datos, que los mismos se encuentran bajo medidas que garantizan la seguridad, confidencialidad e integridad, y su tratamiento se realiza con base en nuestra Pol?tica de Tratamiento de Datos Personales, esta informaci?n se podr? consultar en la p?gina web unal.edu.co<http://www.unal.edu.co/> o ser solicitada para su conocimiento en el correo electr?nico protecdatos_na en unal.edu.co<mailto:protecdatos_na en unal.edu.co>. Canal por el que tambi?n puede ejercer sus derechos como titular dentro de los cuales se contempla conocer, actualizar, rectificar y revocar las autorizaciones dadas a las finalidades aplicables para el desarrollo de las relaciones laborales, acad?micas, contractuales y todas las relacionadas con el objeto social de la Universidad.? [[alternative HTML version deleted]]
Marcelino de la Cruz Rot
2020-Sep-23 07:49 UTC
[R-es] Encontrar un dato y añadirlo a otra columna
Hola: Para este ejemplo concreto, es bastante sencillo. Por ejemplo: sp <-strsplit(df$nombre1, " ") df$Nombre1_numero<-sapply(sp, function(x) ifelse(x[1]=="AV", as.numeric(x[2]), NA)) Saludos, Marcelino El 23/09/2020 a las 2:14, Samura . escribió:> Con parse_number sacaria todos los numeros de la columna, > pero lo que busco es sacar solo los que empiezan por AV y descartar el resto. > > De todas maneras muchas gracias, le voy a dar otra vuelta. > > ________________________________ > De: Juan Carlos Lopez Mesa <jclopez5 en unal.edu.co> > Enviado: martes, 22 de septiembre de 2020 21:32 > Para: Samura . <tontito82 en hotmail.com> > Cc: r-help-es en r-project.org <r-help-es en r-project.org> > Asunto: Re: [R-es] Encontrar un dato y a?adirlo a otra columna > > Hola, > > prueba con esto > > df %>% mutate(var = parse_number(nombre1)) > > > Saludos > > El mar., 22 sept. 2020 a las 15:46, Samura . (<tontito82 en hotmail.com<mailto:tontito82 en hotmail.com>>) escribi?: > Buenas, > A ver si alguien sabe como hacer lo siguiente: > > Tengo un df con letras y numeros, quiero que si me detecta un numero en concreto me a?ada dicho numero en otra columna. > > Algo asi > > df<-data.frame(c("AV 23","PEPE 34","QWE","AV 24","WERRR ER34","AV 25")) > colnames(df)<-c("nombre1") > > df[grepl("AV 23",df$nombre1), "Nombre1_numero"]= "23" > df[grepl("AV 24",df$nombre1), "Nombre1_numero"]= "24" > df[grepl("AV 25",df$nombre1), "Nombre1_numero"]= "25" > df > > > nombre1 Nombre1_numero > AV 23 23 > PEPE 34 NA > QWE NA > AV 24 24 > WERRR ER34 NA > AV 25 25 > > osea, busca AV 23, 24, 25 en la columna, si lo encuentras pon el numero en otra columna, el resto de datos NA > > como son muchos, para no repetir siempre lo mismo habia pensado en algo asi > > > df[grepl("AV \\d{2}",df$nombre1), "Nombre1_numero"]= "\\d{2}" > > pero no se como poner ese "\\d{2}" ultimo para que me coloque el numero. > > ?Alguna idea? > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org<mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > > ?Esta transmisi?n electr?nica es propiedad de la Universidad Nacional de Colombia, su contenido es confidencial y ?nicamente lo puede recibir la persona o entidad a quien va dirigido. Se proh?be: Usar esta informaci?n para prop?sitos ajenos a la Universidad, divulgar su contenido a personas externas, reproducir total y/o parcialmente la informaci?n contenida. No se asume responsabilidad sobre informaci?n, opiniones o criterios contenidos en este correo electr?nico que no est?n relacionados con la Universidad. Si usted no es el destinatario de este correo electr?nico, se le notifica que el uso de esta informaci?n, as? como su difusi?n, distribuci?n o copia, est? estrictamente prohibida, por favor notifique al remitente inmediatamente por este mismo medio y elimine lo antes posible este mensaje. La Universidad Nacional de Colombia, identificada con NIT 899.999.063, con domicilio principal en la ciudad de Bogot? D.C. en la Carrera 45 # 26-85 Edif. Uriel Guti?rrez Bogot? D.C., Colombia y con tel?fono (+57 1) 316 50 00, en cumplimiento de la Ley 1581 de 2012 y el art?culo 15 del Decreto 1377 de 2013, como responsable del tratamiento de informaci?n de datos personales, desea informar a todas las personas cuyos datos personales se encuentran en nuestras bases de datos, que los mismos se encuentran bajo medidas que garantizan la seguridad, confidencialidad e integridad, y su tratamiento se realiza con base en nuestra Pol?tica de Tratamiento de Datos Personales, esta informaci?n se podr? consultar en la p?gina web unal.edu.co<http://www.unal.edu.co/> o ser solicitada para su conocimiento en el correo electr?nico protecdatos_na en unal.edu.co<mailto:protecdatos_na en unal.edu.co>. Canal por el que tambi?n puede ejercer sus derechos como titular dentro de los cuales se contempla conocer, actualizar, rectificar y revocar las autorizaciones dadas a las finalidades aplicables para el desarrollo de las relaciones laborales, acad?micas, contractuales y todas las relacionadas con el objeto social de la Universidad.? > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es-- Marcelino de la Cruz Rot Depto. de Biología y Geología Física y Química Inorgánica Universidad Rey Juan Carlos Móstoles España
perfecto, pero en realidad habia simplificado el ejemplo ya que no siempre se encuentra en la misma posicion (y a veces es AV en mayuscula, otra en minuscula, otra entre parentesis etc..) pero con sacarlo siguiendo este formato me vale, luego lo adapto a cada circunstancia nombre1 AV 23 PEPE 34 QWE ssss 45 pepe qqqq AV 24 WERRR ER34 qqqqq AV 25 qqqq qqqq ________________________________ De: Marcelino de la Cruz Rot <marcelino.delacruz en urjc.es> Enviado: miércoles, 23 de septiembre de 2020 7:49 Para: Samura . <tontito82 en hotmail.com>; Juan Carlos Lopez Mesa <jclopez5 en unal.edu.co> Cc: r-help-es en r-project.org <r-help-es en r-project.org> Asunto: Re: [R-es] Encontrar un dato y añadirlo a otra columna Hola: Para este ejemplo concreto, es bastante sencillo. Por ejemplo: sp <-strsplit(df$nombre1, " ") df$Nombre1_numero<-sapply(sp, function(x) ifelse(x[1]=="AV", as.numeric(x[2]), NA)) Saludos, Marcelino El 23/09/2020 a las 2:14, Samura . escribió:> Con parse_number sacaria todos los numeros de la columna, > pero lo que busco es sacar solo los que empiezan por AV y descartar el resto. > > De todas maneras muchas gracias, le voy a dar otra vuelta. > > ________________________________ > De: Juan Carlos Lopez Mesa <jclopez5 en unal.edu.co> > Enviado: martes, 22 de septiembre de 2020 21:32 > Para: Samura . <tontito82 en hotmail.com> > Cc: r-help-es en r-project.org <r-help-es en r-project.org> > Asunto: Re: [R-es] Encontrar un dato y a?adirlo a otra columna > > Hola, > > prueba con esto > > df %>% mutate(var = parse_number(nombre1)) > > > Saludos > > El mar., 22 sept. 2020 a las 15:46, Samura . (<tontito82 en hotmail.com<mailto:tontito82 en hotmail.com>>) escribi?: > Buenas, > A ver si alguien sabe como hacer lo siguiente: > > Tengo un df con letras y numeros, quiero que si me detecta un numero en concreto me a?ada dicho numero en otra columna. > > Algo asi > > df<-data.frame(c("AV 23","PEPE 34","QWE","AV 24","WERRR ER34","AV 25")) > colnames(df)<-c("nombre1") > > df[grepl("AV 23",df$nombre1), "Nombre1_numero"]= "23" > df[grepl("AV 24",df$nombre1), "Nombre1_numero"]= "24" > df[grepl("AV 25",df$nombre1), "Nombre1_numero"]= "25" > df > > > nombre1 Nombre1_numero > AV 23 23 > PEPE 34 NA > QWE NA > AV 24 24 > WERRR ER34 NA > AV 25 25 > > osea, busca AV 23, 24, 25 en la columna, si lo encuentras pon el numero en otra columna, el resto de datos NA > > como son muchos, para no repetir siempre lo mismo habia pensado en algo asi > > > df[grepl("AV \\d{2}",df$nombre1), "Nombre1_numero"]= "\\d{2}" > > pero no se como poner ese "\\d{2}" ultimo para que me coloque el numero. > > ?Alguna idea? > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org<mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > > ?Esta transmisi?n electr?nica es propiedad de la Universidad Nacional de Colombia, su contenido es confidencial y ?nicamente lo puede recibir la persona o entidad a quien va dirigido. Se proh?be: Usar esta informaci?n para prop?sitos ajenos a la Universidad, divulgar su contenido a personas externas, reproducir total y/o parcialmente la informaci?n contenida. No se asume responsabilidad sobre informaci?n, opiniones o criterios contenidos en este correo electr?nico que no est?n relacionados con la Universidad. Si usted no es el destinatario de este correo electr?nico, se le notifica que el uso de esta informaci?n, as? como su difusi?n, distribuci?n o copia, est? estrictamente prohibida, por favor notifique al remitente inmediatamente por este mismo medio y elimine lo antes posible este mensaje. La Universidad Nacional de Colombia, identificada con NIT 899.999.063, con domicilio principal en la ciudad de Bogot? D.C. en la Carrera 45 # 26-85 Edif. Uriel Guti?rrez Bogot? D.C., Colombia y con tel?fono (+57 1) 316 50 00, en cumplimiento de la Ley 1581 de 2012 y el art?culo 15 del Decreto 1377 de 2013, como responsable del tratamiento de informaci?n de datos personales, desea informar a todas las personas cuyos datos personales se encuentran en nuestras bases de datos, que los mismos se encuentran bajo medidas que garantizan la seguridad, confidencialidad e integridad, y su tratamiento se realiza con base en nuestra Pol?tica de Tratamiento de Datos Personales, esta informaci?n se podr? consultar en la p?gina web unal.edu.co<http://www.unal.edu.co/> o ser solicitada para su conocimiento en el correo electr?nico protecdatos_na en unal.edu.co<mailto:protecdatos_na en unal.edu.co>. Canal por el que tambi?n puede ejercer sus derechos como titular dentro de los cuales se contempla conocer, actualizar, rectificar y revocar las autorizaciones dadas a las finalidades aplicables para el desarrollo de las relaciones laborales, acad?micas, contractuales y todas las relacionadas con el objeto social de la Universidad.? > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es-- Marcelino de la Cruz Rot Depto. de Biología y Geología Física y Química Inorgánica Universidad Rey Juan Carlos Móstoles España [[alternative HTML version deleted]]