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 <r-help-es-bounces en r-project.org> en nombre de > Marcelino de la Cruz Rot <marcelino.delacruz en urjc.es> > *Enviado:* jueves, 10 de septiembre de 2020 9:36 > *Para:* r-help-es en r-project.org <r-help-es en 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 . (<tontito82 en hotmail.com>) > > 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 en 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 en 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 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 <marcelino.delacruz en urjc.es> Enviado: jueves, 10 de septiembre de 2020 17:15 Para: Samura . <tontito82 en hotmail.com>; r-help-es en r-project.org <r-help-es en 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 <r-help-es-bounces en r-project.org> en nombre de > Marcelino de la Cruz Rot <marcelino.delacruz en urjc.es> > *Enviado:* jueves, 10 de septiembre de 2020 9:36 > *Para:* r-help-es en r-project.org <r-help-es en 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 . (<tontito82 en hotmail.com>) > > 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 en 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 en 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]]
OK. Yo lo he hecho con R version 4.0.0 (2020-04-24) -- "Arbor Day". Ya nos cuentas si funciona. El 10/09/2020 a las 20:19, Samura . escribió:> 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 <marcelino.delacruz en urjc.es> > *Enviado:* jueves, 10 de septiembre de 2020 17:15 > *Para:* Samura . <tontito82 en hotmail.com>; r-help-es en r-project.org > <r-help-es en 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 <r-help-es-bounces en r-project.org> en nombre de > > Marcelino de la Cruz Rot <marcelino.delacruz en urjc.es> > > *Enviado:* jueves, 10 de septiembre de 2020 9:36 > > *Para:* r-help-es en r-project.org <r-help-es en 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 . (<tontito82 en hotmail.com>) > > > 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 en r-project.org > > >> https://stat.ethz.ch/mailman/listinfo/r-help-es > <https://stat.ethz.ch/mailman/listinfo/r-help-es> > > <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 en r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > <https://stat.ethz.ch/mailman/listinfo/r-help-es> > > <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 >-- 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