[R-es] aplicar codigo

Marcelino de la Cruz Rot m@rce||no@de|@cruz @end|ng |rom urjc@e@
Jue Sep 10 20:25:41 CEST 2020


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 using urjc.es>
> *Enviado:* jueves, 10 de septiembre de 2020 17:15
> *Para:* Samura . <tontito82 using hotmail.com>; r-help-es using r-project.org 
> <r-help-es using 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 using r-project.org> en nombre de
> > Marcelino de la Cruz Rot <marcelino.delacruz using urjc.es>
> > *Enviado:* jueves, 10 de septiembre de 2020 9:36
> > *Para:* r-help-es using r-project.org <r-help-es using 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 using 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 using 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 using 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



Más información sobre la lista de distribución R-help-es