Re: [R-es] Encontrar un dato y añadirlo a otra columna
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 45 pepe AV 24 WERRR ER34 q AV 25 De: Marcelino de la Cruz Rot Enviado: miércoles, 23 de septiembre de 2020 7:49 Para: Samura . ; Juan Carlos Lopez Mesa Cc: r-help-es@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 > Enviado: martes, 22 de septiembre de 2020 21:32 > Para: Samura . > Cc: r-help-es@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 . > (mailto:tontit...@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 34NA > 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@r-project.org<mailto:R-help-es@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 s
[R-es] Encontrar un dato y añadirlo a otra columna
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 34NA 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@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] expresiones regulares
Muchas gracias aunque no era lo que buscaba pq la estructura de los datos es cambiante y no se le puede aplicar una funcion "fija". Al final estoy usando gsub caso a caso. De: Eric Enviado: domingo, 20 de septiembre de 2020 20:41 Para: Carlos Ortega ; Samura . Cc: r-help-es@r-project.org Asunto: Re: [R-es] expresiones regulares Al parecer s�lo hay que eliminar los espacios, no ? On 20-09-20 13:32, Carlos Ortega wrote: > Hola, > > Extraer los tres primeros caracteres de cada cadena se puede hacer as�: > >> library(stringr) >> >> mis_str <- > c('1.3ptd','1.3ptdm','4.4ptdm23j','7.716s','1.4hola','1.4hola.hola','5.5v6','5.5v6sdp','5.5v10sdp') >> res_out <- vector() >> for(i in 1:length(mis_str)) { > + wrd_tmp <- mis_str[i] > + pri_parte <- str_sub(wrd_tmp, 1, 3) > + sec_parte <- str_sub(wrd_tmp, 4, nchar(wrd_tmp)) > + res_tmp <- c(pri_parte,sec_parte) > + res_out <- c(res_out, res_tmp) > + } >> paste0(res_out, collapse = " ") > [1] "1.3 ptd 1.3 ptdm 4.4 ptdm23j 7.7 16s 1.4 hola 1.4 hola.hola 5.5 v6 5.5 > v6sdp 5.5 v10sdp" > Pero es que este es el patr�n claro que veo de primeras. Hay alg�n otro > patr�n m�s... sobre lo que se guarda en "sec_parte", pero siguiendo esta > idea puedes tratarlo. > > Saludos, > Carlos Ortega > www.qualityexcellence.es<http://www.qualityexcellence.es> > > > El dom., 20 sept. 2020 a las 17:43, Samura . () > escribi�: > >> Hola a tod@s >> >> �alquien sabria como convertir estas frases con expresiones regulares? >> >> 1.3ptd -> 1.3 ptd >> 1.3ptdm -> 1.3 ptdm >> 4.4ptdm23j -> 4.4 ptdm 23j >> 7.716s -> 7.7 16s >> 1.4hola -> 1.4 hola >> 1.4hola.hola -> 1.4 hola.hola >> 5.5v6 -> 5.5 v6 >> 5.5v6sdp -> 5.5 v6 sdp >> 5.5v10sdp -> 5.5 v10 sdp >> >> de forma que esta frase >> >> "hola 1.3ptd 1.3ptdm 4.4ptdm23j 7.716s 1.4hola pepe 1.4hola.hola 5.5v6 >> 5.5v6sdp 5.5v10sdp" >> >> >> quedara as� >> >> "hola 1.3 ptd 1.3 ptdm 4.4 ptdm 23j 7.7 16s 1.4 hola pepe 1.4 hola.hola >> 5.5 v6 5.5 v6 sdp 5.5 v10 sdp" >> >> estoy probando con gsub y no doy con la tecla. >> >> Lo mismo hay una forma mas simple de cambiarlo y no usando las expresiones >> regulares. >> >> >> >> [[alternative HTML version deleted]] >> >> ___ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
[R-es] expresiones regulares
Hola a tod@s �alquien sabria como convertir estas frases con expresiones regulares? 1.3ptd -> 1.3 ptd 1.3ptdm -> 1.3 ptdm 4.4ptdm23j -> 4.4 ptdm 23j 7.716s -> 7.7 16s 1.4hola -> 1.4 hola 1.4hola.hola -> 1.4 hola.hola 5.5v6 -> 5.5 v6 5.5v6sdp -> 5.5 v6 sdp 5.5v10sdp -> 5.5 v10 sdp de forma que esta frase "hola 1.3ptd 1.3ptdm 4.4ptdm23j 7.716s 1.4hola pepe 1.4hola.hola 5.5v6 5.5v6sdp 5.5v10sdp" quedara as� "hola 1.3 ptd 1.3 ptdm 4.4 ptdm 23j 7.7 16s 1.4 hola pepe 1.4 hola.hola 5.5 v6 5.5 v6 sdp 5.5 v10 sdp" estoy probando con gsub y no doy con la tecla. Lo mismo hay una forma mas simple de cambiarlo y no usando las expresiones regulares. [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] Cambiar datos de un DF
Genial! Gracias! De: Marcelino de la Cruz Rot Enviado: domingo, 13 de septiembre de 2020 12:50 Para: Samura . ; r-help-es@r-project.org Asunto: Re: [R-es] Cambiar datos de un DF Hola: Si codificas "col1" como un factor, lo puedes cambiar todo de una vez renombrando los niveles correspondientes: > df$col1<-as.factor(df$col1) > df$col1 [1] uno dos 3 4 cinco 6 siete 8 9 diez Levels: 3 4 6 8 9 cinco diez dos siete uno > levels(df$col1)[1:5] <- c("tres","cuatro","seis","ocho","nueve") > df col1 col2 1 uno1 2 dos2 3tres3 4 cuatro4 5 cinco5 6seis6 7 siete7 8ocho8 9 nueve 9 10 diez 10 > Saludos, Marcelino El 13/09/2020 a las 14:37, Samura . escribió: > Hola a tod@s > > �C�mo puedo cambiar varios datos por otros en un data frame? > > Por ejemplo > > col1<-c("uno","dos",3,4,"cinco",6,"siete",8,9,"diez") > col2<-c(1,2,3,4,5,6,7,8,9,10) > > df<-data.frame(col1,col2) > df$col1<-as.character(df$col1) > df > > col1 col2 > uno1 > dos2 >33 >44 >cinco5 >66 >siete7 >88 >99 > diez 10 > > Ahora quiero cambiar por ejemplo los n�meros por letras (o cualquier otro > dato en cualquier otro ejemplo) > > df$col1[df$col1==3]<-"tres" > df$col1[df$col1==4]<-"cuatro" > df$col1[df$col1==6]<-"seis" > df$col1[df$col1==8]<-"ocho" > df$col1[df$col1==9]<-"nueve" > > �No hay otra forma de ponerlo para no ir uno a uno? > > he probado con > > df$col1[df$col1==c(3,4,6)]<-c("tres","cuatro","seis") > > pero nada, pq creo que tendr�a q ponerlos todos, solo quiero poner los que > quiero cambiar. > > Gracias! > > > >[[alternative HTML version deleted]] > > > ___ > R-help-es mailing list > R-help-es@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]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
[R-es] Cambiar datos de un DF
Hola a tod@s �C�mo puedo cambiar varios datos por otros en un data frame? Por ejemplo col1<-c("uno","dos",3,4,"cinco",6,"siete",8,9,"diez") col2<-c(1,2,3,4,5,6,7,8,9,10) df<-data.frame(col1,col2) df$col1<-as.character(df$col1) df col1 col2 uno1 dos2 33 44 cinco5 66 siete7 88 99 diez 10 Ahora quiero cambiar por ejemplo los n�meros por letras (o cualquier otro dato en cualquier otro ejemplo) df$col1[df$col1==3]<-"tres" df$col1[df$col1==4]<-"cuatro" df$col1[df$col1==6]<-"seis" df$col1[df$col1==8]<-"ocho" df$col1[df$col1==9]<-"nueve" �No hay otra forma de ponerlo para no ir uno a uno? he probado con df$col1[df$col1==c(3,4,6)]<-c("tres","cuatro","seis") pero nada, pq creo que tendr�a q ponerlos todos, solo quiero poner los que quiero cambiar. Gracias! [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] aplicar codigo
Solucionado entonces, muchas gracias De: R-help-es en nombre de Marcelino de la Cruz Rot Enviado: jueves, 10 de septiembre de 2020 19:20 Para: David Mateos Cc: r-help-es@r-project.org Asunto: Re: [R-es] aplicar codigo Ya s� a qu� se debe: En vuestro R, la funci�n data.frame transforma autom�ticamente los vectores de tipo /character/ a tipo/factor/. Con un factor, sapply devuelve el n�mero del nivel correspondiente: > col1 <- c('x1', 'x2', 'x11', 'x1','x33', 'x1','x4', 'x5', 'x35', 'x1','x2', 'x4') > sapply(col1, function(x) ifelse(x%in%c("x1","x2","x3"), "prueba12",ifelse(x%in%c("x4","x5","x6"),"prueba2",x))) x1 x2x11 x1x33 x1 x4 x5x35 x1 x2 x4 "prueba12" "prueba12" "x11" "prueba12" "x33" "prueba12" "prueba2" "prueba2" "x35" "prueba12" "prueba12" "prueba2" > sapply(factor(col1), function(x) ifelse(x%in%c("x1","x2","x3"), "prueba12",ifelse(x%in%c("x4","x5","x6"),"prueba2",x))) [1] "prueba12" "prueba12" "2""prueba12" "4" "prueba12" "prueba2" "prueba2" "5""prueba12" "prueba12" "prueba2" > El 10/09/2020 a las 20:35, David Mateos escribi�: > Hola, > a m� me sucede como a Samura y no consigo entender de donde salen esos > "2", "4" y "5" para df1. �Alguien puede arrojar luz? > Tanto con la versi�n 3.6 como con la 4.0.2 > > Si me funciona con > ``` > transforma <- function(df) { > apply(df, 1, function(x) > ifelse(x%in%c("x1","x2","x3"), >"prueba12", >ifelse(x%in%c("x4","x5","x6"), > "prueba2",x) > ) > ) > } > df1$transformacion <- transforma(df1) > ``` > Un saludo, > David > > Enviado desde Outlook <http://aka.ms/weboutlook> > > > *De:* R-help-es en nombre de > Marcelino de la Cruz Rot > *Enviado:* jueves, 10 de septiembre de 2020 19:15 > *Para:* Samura . ; r-help-es@r-project.org > > *Asunto:* Re: [R-es] aplicar codigo > Yo copio y pego este c�digo y me sale correctamente. Se me ocurre que > pueda deberse a la versi�n de R �cu�l usas? > > > El 10/09/2020 a las 17:51, Samura . escribi�: > > Gracias por las respuestas. > > > > Prob� lo de hacer la funci�n y no me sal�a. Pensaba que hac�a algo mal. > > Ahora con el c�digo de Marcelino tampoco me sale. > > > > col1 <- c('x1', 'x2', 'x11', 'x1','x33', 'x1','x4', 'x5', 'x35', > > 'x1','x2', 'x4') > > col2 <- c('x12', 'x4', 'x6', 'x771','x4', 'x2') > > col3 <- c('x7', 'x2', 'x4', 'x5','x111', 'x1','x4', 'x5', > > 'x35','x2','x2', 'x4','x6', 'x5') > > > > df1<-data.frame(col1) > > df2<-data.frame(col2) > > df3<-data.frame(col3) > > > > transforma <- function(df) sapply(df, function(x) > > ifelse(x%in%c("x1","x2","x3"), > > "prueba12",ifelse(x%in%c("x4","x5","x6"),"prueba2",x))) > > > > transforma(df1) > > col1 > > [1,] "prueba12" > > [2,] "prueba12" > > [3,] "2" > > [4,] "prueba12" > > [5,] "4" > > [6,] "prueba12" > > [7,] "prueba2" > > [8,] "prueba2" > > [9,] "5" > > [10,] "prueba12" > > [11,] "prueba12" > > [12,] "prueba2" > > > > �Alguna idea de pq me sale 2, 4, 5? > > > > *De:* R-help-es en nombre de > > Marcelino de la Cruz Rot > > *Enviado:* jueves, 10 de septiembre de 2020 9:36 > > *Para:* r-help-es@r-project.org > > *Asunto:* Re: [R-es] aplicar codigo > > Hola: > > Como dice Carlos, algo as�, por ejemplo: > > > > transforma <- function(df) sapply(df, function(x) > > ifelse(x%in%c("x1","x2","x3"), > > "prueba1",ifelse(x%in%c("x4","x5","x6"),"prueba2",x))) > > > > > > > transforma(df1) > >col1 > > [1,] "prueba1" > > [2,
Re: [R-es] aplicar codigo
R version 3.6.3 (2020-02-29) -- "Holding the Windsock" Rstudio Version 1.2.1335 Voy a actualizarlo todo a ver que pasa. De: Marcelino de la Cruz Rot Enviado: jueves, 10 de septiembre de 2020 17:15 Para: Samura . ; r-help-es@r-project.org Asunto: Re: [R-es] aplicar codigo Yo copio y pego este c�digo y me sale correctamente. Se me ocurre que pueda deberse a la versi�n de R �cu�l usas? El 10/09/2020 a las 17:51, Samura . escribi�: > Gracias por las respuestas. > > Prob� lo de hacer la funci�n y no me sal�a. Pensaba que hac�a algo mal. > Ahora con el c�digo de Marcelino tampoco me sale. > > col1 <- c('x1', 'x2', 'x11', 'x1','x33', 'x1','x4', 'x5', 'x35', > 'x1','x2', 'x4') > col2 <- c('x12', 'x4', 'x6', 'x771','x4', 'x2') > col3 <- c('x7', 'x2', 'x4', 'x5','x111', 'x1','x4', 'x5', > 'x35','x2','x2', 'x4','x6', 'x5') > > df1<-data.frame(col1) > df2<-data.frame(col2) > df3<-data.frame(col3) > > transforma <- function(df) sapply(df, function(x) > ifelse(x%in%c("x1","x2","x3"), > "prueba12",ifelse(x%in%c("x4","x5","x6"),"prueba2",x))) > > transforma(df1) > col1 > [1,] "prueba12" > [2,] "prueba12" > [3,] "2" > [4,] "prueba12" > [5,] "4" > [6,] "prueba12" > [7,] "prueba2" > [8,] "prueba2" > [9,] "5" > [10,] "prueba12" > [11,] "prueba12" > [12,] "prueba2" > > �Alguna idea de pq me sale 2, 4, 5? > > *De:* R-help-es en nombre de > Marcelino de la Cruz Rot > *Enviado:* jueves, 10 de septiembre de 2020 9:36 > *Para:* r-help-es@r-project.org > *Asunto:* Re: [R-es] aplicar codigo > Hola: > Como dice Carlos, algo as�, por ejemplo: > > transforma <- function(df) sapply(df, function(x) > ifelse(x%in%c("x1","x2","x3"), > "prueba1",ifelse(x%in%c("x4","x5","x6"),"prueba2",x))) > > > > transforma(df1) >col1 > [1,] "prueba1" > [2,] "prueba1" > [3,] "x11" > [4,] "prueba1" > [5,] "x33" > [6,] "prueba1" > [7,] "prueba2" > [8,] "prueba2" > [9,] "x35" > [10,] "prueba1" > [11,] "prueba1" > [12,] "prueba2" > > > > transforma(df2) > col2 > [1,] "x12" > [2,] "prueba2" > [3,] "prueba2" > [4,] "x771" > [5,] "prueba2" > [6,] "prueba1" > > > > transforma(df3) >col3 > [1,] "x7" > [2,] "prueba1" > [3,] "prueba2" > [4,] "prueba2" > [5,] "x111" > [6,] "prueba1" > [7,] "prueba2" > [8,] "prueba2" > [9,] "x35" > [10,] "prueba1" > [11,] "prueba1" > [12,] "prueba2" > [13,] "prueba2" > [14,] "prueba2" > > Saludos, > > Marcelino > > El 10/09/2020 a las 9:41, Carlos Ortega escribi�: > > Hola, > > Si lo estoy entendiendo bien, lo que tienes que crearte es una funci�n. > > A la funci�n le pasar�as unos par�metros (las columnas y el dataframe al > > que a�adir la transformaci�n), y en el cuerpo de la funci�n haces esos > > c�lculos. > > > > Gracias, > > Carlos. > > > > > > > > Gracias, > > Carlos. > > > > El jue., 10 sept. 2020 a las 3:55, Samura . () > > escribi�: > > > >> Hola, > >> me gustar�a hacer algo como en el siguiente ejemplo > >> > >> A un df a�adirle una columna que es la transformaci�n de otra, > >> en plan a todo lo que sea x1, x2, x3 lo llamo prueba 1 > >> todo lo que sea x4,x5,x6 lo llamo prueba 2 > >> el resto de x las dejo como est�n. > >> > >> Ser�a algo as� > >> > >> col1 <- c('x1', 'x2', 'x11', 'x1','x33', 'x1','x4', 'x5', 'x35', > >> 'x1','x2', 'x4') > >> df1<-data.frame(col1) > >> attach(df1) > >> > >> df1$transformacion<-ifelse(col1 == "x1"|col1 == "x2"| col1 == "x3", > >> "prueba1", > >> ifelse(col1 == "x4"|col1 == "x5"| col1 > == "x6", > >> "prueba2", col1)) > >> > >> detach(df1) > >> df1 > >> > >> pero ahora en vez de un df tengo varios > >> > >> col2 <- c('x12', 'x4', 'x6', 'x771','x4', 'x2') > >> col3 <- c('x7', 'x2', 'x4', 'x5','x111', 'x1','x4', 'x5', > 'x35','x2','x2', > >> 'x4','x6', 'x5') > >> df2<-data.frame(col2) > >> df3<-data.frame(col3) > >> > >> �c�mo puedo aplicar el c�digo al resto de los df sin tener que > repetirlo? > >> > >> > >> > >> [[alternative HTML version deleted]] > >> > >> ___ > >> R-help-es mailing list > >> R-help-es@r-project.org > >> https://stat.ethz.ch/mailman/listinfo/r-help-es > <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 > > ___ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > <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]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] aplicar codigo
Gracias por las respuestas. Prob� lo de hacer la funci�n y no me sal�a. Pensaba que hac�a algo mal. Ahora con el c�digo de Marcelino tampoco me sale. col1 <- c('x1', 'x2', 'x11', 'x1','x33', 'x1','x4', 'x5', 'x35', 'x1','x2', 'x4') col2 <- c('x12', 'x4', 'x6', 'x771','x4', 'x2') col3 <- c('x7', 'x2', 'x4', 'x5','x111', 'x1','x4', 'x5', 'x35','x2','x2', 'x4','x6', 'x5') df1<-data.frame(col1) df2<-data.frame(col2) df3<-data.frame(col3) transforma <- function(df) sapply(df, function(x) ifelse(x%in%c("x1","x2","x3"), "prueba12",ifelse(x%in%c("x4","x5","x6"),"prueba2",x))) transforma(df1) col1 [1,] "prueba12" [2,] "prueba12" [3,] "2" [4,] "prueba12" [5,] "4" [6,] "prueba12" [7,] "prueba2" [8,] "prueba2" [9,] "5" [10,] "prueba12" [11,] "prueba12" [12,] "prueba2" �Alguna idea de pq me sale 2, 4, 5? De: R-help-es en nombre de Marcelino de la Cruz Rot Enviado: jueves, 10 de septiembre de 2020 9:36 Para: r-help-es@r-project.org Asunto: Re: [R-es] aplicar codigo Hola: Como dice Carlos, algo as�, por ejemplo: transforma <- function(df) sapply(df, function(x) ifelse(x%in%c("x1","x2","x3"), "prueba1",ifelse(x%in%c("x4","x5","x6"),"prueba2",x))) > transforma(df1) col1 [1,] "prueba1" [2,] "prueba1" [3,] "x11" [4,] "prueba1" [5,] "x33" [6,] "prueba1" [7,] "prueba2" [8,] "prueba2" [9,] "x35" [10,] "prueba1" [11,] "prueba1" [12,] "prueba2" > transforma(df2) col2 [1,] "x12" [2,] "prueba2" [3,] "prueba2" [4,] "x771" [5,] "prueba2" [6,] "prueba1" > transforma(df3) col3 [1,] "x7" [2,] "prueba1" [3,] "prueba2" [4,] "prueba2" [5,] "x111" [6,] "prueba1" [7,] "prueba2" [8,] "prueba2" [9,] "x35" [10,] "prueba1" [11,] "prueba1" [12,] "prueba2" [13,] "prueba2" [14,] "prueba2" Saludos, Marcelino El 10/09/2020 a las 9:41, Carlos Ortega escribi�: > Hola, > Si lo estoy entendiendo bien, lo que tienes que crearte es una funci�n. > A la funci�n le pasar�as unos par�metros (las columnas y el dataframe al > que a�adir la transformaci�n), y en el cuerpo de la funci�n haces esos > c�lculos. > > Gracias, > Carlos. > > > > Gracias, > Carlos. > > El jue., 10 sept. 2020 a las 3:55, Samura . () > escribi�: > >> Hola, >> me gustar�a hacer algo como en el siguiente ejemplo >> >> A un df a�adirle una columna que es la transformaci�n de otra, >> en plan a todo lo que sea x1, x2, x3 lo llamo prueba 1 >> todo lo que sea x4,x5,x6 lo llamo prueba 2 >> el resto de x las dejo como est�n. >> >> Ser�a algo as� >> >> col1 <- c('x1', 'x2', 'x11', 'x1','x33', 'x1','x4', 'x5', 'x35', >> 'x1','x2', 'x4') >> df1<-data.frame(col1) >> attach(df1) >> >> df1$transformacion<-ifelse(col1 == "x1"|col1 == "x2"| col1 == "x3", >> "prueba1", >> ifelse(col1 == "x4"|col1 == "x5"| col1 == "x6", >> "prueba2", col1)) >> >> detach(df1) >> df1 >> >> pero ahora en vez de un df tengo varios >> >> col2 <- c('x12', 'x4', 'x6', 'x771','x4', 'x2') >> col3 <- c('x7', 'x2', 'x4', 'x5','x111', 'x1','x4', 'x5', 'x35','x2','x2', >> 'x4','x6', 'x5') >> df2<-data.frame(col2) >> df3<-data.frame(col3) >> >> �c�mo puedo aplicar el c�digo al resto de los df sin tener que repetirlo? >> >> >> >> [[alternative HTML version deleted]] >> >> ___ >> R-help-es mailing list >> R-help-es@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 ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
[R-es] aplicar codigo
Hola, me gustar�a hacer algo como en el siguiente ejemplo A un df a�adirle una columna que es la transformaci�n de otra, en plan a todo lo que sea x1, x2, x3 lo llamo prueba 1 todo lo que sea x4,x5,x6 lo llamo prueba 2 el resto de x las dejo como est�n. Ser�a algo as� col1 <- c('x1', 'x2', 'x11', 'x1','x33', 'x1','x4', 'x5', 'x35', 'x1','x2', 'x4') df1<-data.frame(col1) attach(df1) df1$transformacion<-ifelse(col1 == "x1"|col1 == "x2"| col1 == "x3", "prueba1", ifelse(col1 == "x4"|col1 == "x5"| col1 == "x6", "prueba2", col1)) detach(df1) df1 pero ahora en vez de un df tengo varios col2 <- c('x12', 'x4', 'x6', 'x771','x4', 'x2') col3 <- c('x7', 'x2', 'x4', 'x5','x111', 'x1','x4', 'x5', 'x35','x2','x2', 'x4','x6', 'x5') df2<-data.frame(col2) df3<-data.frame(col3) �c�mo puedo aplicar el c�digo al resto de los df sin tener que repetirlo? [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] número de items para para sustituir no es un múltiplo de la longitud del reemplazo
Me autorespondo datos<-df %>% mutate_if(is.factor, str_to_title) datos Estas 3 d�as programando en otro lenguaje y al volver a R te vuelves loco. ____ De: Samura . Enviado: domingo, 6 de septiembre de 2020 10:29 Para: Lista R Asunto: n�mero de items para para sustituir no es un m�ltiplo de la longitud del reemplazo Hola, quiero pasar todas las palabras de un df a tipo t�tulo, es decir, la primera letra de cada palabra en may�scula y el resto en min�scula. El caso es que haciendo esto, realiza el cambio, pero me sale el siguiente aviso y no consigo quitarlo 1: In opts["locale"] <- locale :n�mero de items para para sustituir no es un m�ltiplo de la longitud del reemplazo library(tidyverse) col1 <- c('', 'aaa b', 'ccc', 'aa AAA aa BBB') col2 <- c('', 'b', 'bb', '2AAA AAA 2') col3<- c('AbCV', 'cc', 'C', 'cAAc Acc ccAAAc') df<-data.frame(col1,col2,col3) for(i in 1: ncol(df)){ df[,i] <- df[,i] %>% str_to_title(df[,i]) } df [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
[R-es] número de items para para sustituir no es un múltiplo de la longitud del reemplazo
Hola, quiero pasar todas las palabras de un df a tipo t�tulo, es decir, la primera letra de cada palabra en may�scula y el resto en min�scula. El caso es que haciendo esto, realiza el cambio, pero me sale el siguiente aviso y no consigo quitarlo 1: In opts["locale"] <- locale :n�mero de items para para sustituir no es un m�ltiplo de la longitud del reemplazo library(tidyverse) col1 <- c('', 'aaa b', 'ccc', 'aa AAA aa BBB') col2 <- c('', 'b', 'bb', '2AAA AAA 2') col3<- c('AbCV', 'cc', 'C', 'cAAc Acc ccAAAc') df<-data.frame(col1,col2,col3) for(i in 1: ncol(df)){ df[,i] <- df[,i] %>% str_to_title(df[,i]) } df [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] Tabla con dibujo en R Markdown
Muy interesante, muchas gracias. De: Juan Carlos Lopez Mesa Enviado: sábado, 5 de septiembre de 2020 21:36 Para: Carlos Ortega Cc: Samura . ; Lista R Asunto: Re: [R-es] Tabla con dibujo en R Markdown Hola, Tal vez esta pagina te sirva https://cran.r-project.org/web/packages/kableExtra/vignettes/awesome_table_in_html.html Saludos El sáb., 5 sept. 2020 a las 0:45, Carlos Ortega (mailto:c...@qualityexcellence.es>>) escribió: Hola, Sí, mira esta referencia: https://stackoverflow.com/questions/50108763/how-to-insert-images-into-table-in-r-markdown Saludos, Carlos Ortega www.qualityexcellence.es<http://www.qualityexcellence.es> El sáb., 5 sept. 2020 a las 1:37, Samura . (mailto:tontit...@hotmail.com>>) escribió: Hola a tod@s!! Se podría crear en R Markdown una tabla de este estilo? [cid:1745ccb5a67ed9b6ed21] A las malas se puede poner la tabla entera como una imagen, pero me gustaría saber si R Markdown permite meter imágenes dentro de tablas. Gracias. ___ R-help-es mailing list R-help-es@r-project.org<mailto:R-help-es@r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es -- Saludos, Carlos Ortega www.qualityexcellence.es<http://www.qualityexcellence.es> ___ R-help-es mailing list R-help-es@r-project.org<mailto:R-help-es@r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
[R-es] Tabla con dibujo en R Markdown
Hola a tod@s!! Se podría crear en R Markdown una tabla de este estilo? [cid:3350c780-8006-4088-8226-ce28cb0ce975] A las malas se puede poner la tabla entera como una imagen, pero me gustaría saber si R Markdown permite meter imágenes dentro de tablas. Gracias. ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
[R-es] De R a pyspark
Hola, alguien sabr�a decirme como "traducir" este c�digo de R a c�digo Spark con Python (pyspark) para rellenar los valores nulos de una columna con los valores de otra. idx <- which(is.na(df$columna3)) df[idx, 'columna3'] <- df[idx, 'columna4'] Muchas gracias! [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] Mantener nombres de variables
OK, perfecto, justo lo que buscaba. Es que luego quiero hacer una selección de variables y al "cambiar el nombre" me fastidiaba. Gracias De: Salvador Castillo Raya Enviado: domingo, 26 de abril de 2020 20:40 Para: Samura . ; Lista R Asunto: RE: Mantener nombres de variables Buenas noches, Esta sería una forma de hacerlo: library(ISLR) data(Hitters) df <-na.omit(Hitters) df$League <- ifelse(df$League == 'N', 0, 1) df$Division <- ifelse(df$Division == 'W', 0, 1) df$NewLeague <- ifelse(df$NewLeague == 'N', 0, 1) modelo <- lm(Salary~.,data= df) Saludos, Salva From: Samura .<mailto:tontit...@hotmail.com> Sent: domingo, 26 de abril de 2020 22:17 To: Lista R<mailto:R-help-es@r-project.org> Subject: [R-es] Mantener nombres de variables Hola tengo la siguiente duda, �C�mo hago para que R no me cambie el nombre de las variables en este ejemplo? library(ISLR) data(Hitters) Hitters<-na.omit(Hitters) modelo=lm(Salary~.,data=Hitters) modelo las variables League Division NewLeague ahora se llaman LeagueN DivisionW NewLeagueN quiero pasar esas variables a 0-1, he probado con recode o con fastDummies , pero al final acaba cambi�ndome las variables. [[alternative HTML version deleted]] [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
[R-es] Mantener nombres de variables
Hola tengo la siguiente duda, �C�mo hago para que R no me cambie el nombre de las variables en este ejemplo? library(ISLR) data(Hitters) Hitters<-na.omit(Hitters) modelo=lm(Salary~.,data=Hitters) modelo las variables League Division NewLeague ahora se llaman LeagueN DivisionW NewLeagueN quiero pasar esas variables a 0-1, he probado con recode o con fastDummies , pero al final acaba cambi�ndome las variables. [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
[R-es] Bootstrap 0.632 plus
Hola, �alguien conoce alg�n paquete que realice un bootstrap 0.632 plus? �o c�mo hacerlo por ejemplo a partir del 0.632 del paquete caret? [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] Identificar todos los repetidos y "marcarlos".
Hola, gracias por la respuesta. Por como funciona "duplicate" el dato original que se repite no lo marca, y si que necesitaba marcarlo, ya que el objetivo era obtener un data frame con todos dnis repetidos y ver en que se diferencian observando el resto de variables. Al final lo he resuelto de una manera un poco artesanal, obteniendo los dnis unicos de los duplicados y filtrando pero pensaba que habria alguna funcion que te diera todos los repetidos de golpe. Un saludo. De: Salvador Castillo Raya Enviado: sábado, 18 de mayo de 2019 0:31 Para: Samura .; r-help-es@r-project.org Asunto: RE: Identificar todos los repetidos y "marcarlos". Hola, Te serviría algo así: df <- data.frame(x=c(1, 1, 4, 5, 4, 6)) df <- cbind(df, ind_duplicado = as.integer(duplicated(df))) df_sindup <-subset(df, ind_duplicado == 0) Saludos. From: R-help-es on behalf of Samura . Sent: Saturday, May 18, 2019 2:10:37 AM To: r-help-es@r-project.org Subject: [R-es] Identificar todos los repetidos y "marcarlos". Hola, Tengo la siguiente duda: �existe algo parecido a identificar casos repetidos en R al estilo de como lo hace spss? (a�adiendo una nueva columna de datos y marcando los casos) Estoy probando con "duplicated" pero no es lo que busco. Gracias. [[alternative HTML version deleted]] [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es