Hola Javier y Carlos, adjunto un ejemplo en excel para explicarme mejor, sigo sin conseguir el objetivo. Carlos, el valor inicial se lo doy como input. Saludos!
El mar, 5 jul 2022 a la(s) 17:16, Carlos Ortega ([email protected]) escribió: > Hola, > > Bueno, puedes combinar varios lags en la nueva variable... > > > library(dplyr) > > myiris <- iris > > alfa <- 1.7 > > expo <- 0.263 > > myiris %>% > + mutate( mynewSL = lag(Sepal.Length) * 2) %>% > + mutate( *mynewSLcompleja* = > lag(Sepal.Length)*(lag(Sepal.Length)-alfa)^expo) %>% > + relocate( mynewSL, .before = Sepal.Width) %>% > + relocate( mynewSLcompleja, .before = mynewSL) %>% > + head() > Sepal.Length *mynewSLcompleja *mynewSL Sepal.Width Petal.Length > Petal.Width Species > 1 *5.1 * NA NA 3.5 1.4 > 0.2 setosa > 2 4.9 7.036378 10.2 3.0 1.4 > 0.2 setosa > 3 4.7 6.653506 9.8 3.2 1.3 > 0.2 setosa > 4 4.6 6.274523 9.4 3.1 1.5 > 0.2 setosa > 5 5.0 6.086512 9.2 3.6 1.4 > 0.2 setosa > 6 5.4 6.844460 10.0 3.9 1.7 > 0.4 setosa > > Gracias, > Carlos Ortega > www.qualityexcellence.es > > El mar, 5 jul 2022 a las 22:07, Andrés Hirigoyen (< > [email protected]>) escribió: > >> Gracias Carlos. >> Siguiendo tu ejemplo, en mi nueva variable el valor de la observación 2 ( >> *10.2*) es el valor que entra para calcular el valor de la observación 3 >> (*4.7 y 10.2*) >> >> NNn+1=10.2*(10.2-4.7)^0.263 >> Saludos >> >> El mar, 5 jul 2022 a la(s) 16:57, Carlos Ortega ([email protected]) >> escribió: >> >>> Hola, >>> >>> No entiendo muy bien lo que comentas de que aparecen nuevas variables. >>> De esta forma calculo un nuevo "Sepal.Length" que es el valor anterior >>> multiplicado por 2. >>> >>> > myiris %>% >>> + mutate( mynewSL = lag(Sepal.Length) * 2) %>% >>> + relocate( mynewSL, .before = Sepal.Width) %>% >>> + head() >>> Sepal.Length mynewSL Sepal.Width Petal.Length Petal.Width Species >>> 1 *5.1 * NA 3.5 1.4 0.2 setosa >>> 2 4.9 *10.2 * 3.0 1.4 0.2 setosa >>> 3 4.7 9.8 3.2 1.3 0.2 setosa >>> 4 4.6 9.4 3.1 1.5 0.2 setosa >>> 5 5.0 9.2 3.6 1.4 0.2 setosa >>> 6 5.4 10.0 3.9 1.7 0.4 setosa >>> >>> Saludos, >>> Carlos Ortega >>> www.qualityexcellence.es >>> >>> El mar, 5 jul 2022 a las 21:47, Andrés Hirigoyen (< >>> [email protected]>) escribió: >>> >>>> Hola Javier, gracias por tu respuesta. >>>> Hice algo similar a lo que propones con la función lag(), que retarda >>>> los >>>> valores de la variable. El tema que cada vez que lo calculo o me >>>> sobreescribe o me genera una nueva columna y termino con varias columnas >>>> nuevas. >>>> >>>> El mar, 5 jul 2022 a la(s) 16:36, Javier Marcuzzi ( >>>> [email protected]) escribió: >>>> >>>> > Estimado Andrés Hirigoyen >>>> > >>>> > Es bastante complejo pero puede resultar simple. >>>> > Todo depende de como trabajes con los datos, en una oportunidad en esa >>>> > lista me ayudaron utilizando do.call >>>> > >>>> > Yo intentaría primero modificando los datos, por ejemplo al data.frame >>>> > original le tomo y realizo un contador, que inicie en 0 e incremente >>>> en 1, >>>> > a este resultado se lo agrego en una nueva columna al mismo >>>> data.frame. >>>> > >>>> > Suponiendo que en los datos, cada registro tiene una numeración que >>>> inicia >>>> > en 1, la columna agregada comienza en 0, por lo que puedo realizar una >>>> > búsqueda de una columna sobre la otra que está corrida justo un >>>> número, >>>> > pero en la misma fila de datos, lo que facilita el recorrido. >>>> > >>>> > Es una idea, seguramente hay formas más eficientes, pero esta es >>>> simple de >>>> > entender. >>>> > >>>> > Javier Rubén Marcuzzi >>>> > >>>> > >>>> > > El 5 jul. 2022, a las 15:59, Andrés Hirigoyen < >>>> [email protected]> >>>> > escribió: >>>> > > >>>> > > Buenas tardes. >>>> > > Necesito ayuda para hacer una función o un bucle que me permita >>>> calcular >>>> > > una nueva variable empleando el valor anterior de la misma (para la >>>> > > observación anterior). En un dataframe de varias columnas. >>>> > > >>>> > > Por ejemplo: >>>> > > Para calcular el valor de NN para la observación 2, emplea el NN de >>>> la >>>> > > observación 1, para el NN de la tercera emplea el NN de la segunda y >>>> > > así hasta todas las observaciones. >>>> > > Algo así: >>>> > > NN(i-1)<-valor inicial >>>> > > NNi=NN(i-1)*(NN(i-1)-Alfa)^0.263 >>>> > > NNi+1=NN(i)*(NN(i)-Alfa)^0.263... >>>> > > >>>> > > NNn+1=NN(n)*(NN(n)-Alfa)^0.263 >>>> > > He intentado varias cosas pero no tuve suerte. Desde ya muchas >>>> gracias >>>> > > -- >>>> > > >>>> > > >>>> > > - >>>> > > >>>> > > [[alternative HTML version deleted]] >>>> > > >>>> > > _______________________________________________ >>>> > > R-help-es mailing list >>>> > > [email protected] >>>> > > https://stat.ethz.ch/mailman/listinfo/r-help-es >>>> > >>>> > >>>> >>>> -- >>>> *Dr. **Andrés Hirigoyen* >>>> *Ing. Agr. **(MSc)* >>>> * Prof. Ciencias Biológicas* >>>> Scholar Andrés >>>> < >>>> https://scholar.google.com/citations?hl=es&user=ubpY7s4AAAAJ&view_op=list_works&sortby=pubdate >>>> > >>>> Researchgate Andrés < >>>> https://www.researchgate.net/profile/Andres-Hirigoyen> >>>> >>>> - >>>> >>>> [[alternative HTML version deleted]] >>>> >>>> _______________________________________________ >>>> R-help-es mailing list >>>> [email protected] >>>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>>> >>> >>> >>> -- >>> Saludos, >>> Carlos Ortega >>> www.qualityexcellence.es >>> >> >> >> -- >> *Dr. **Andrés Hirigoyen* >> *Ing. Agr. **(MSc)* >> * Prof. Ciencias Biológicas* >> Scholar Andrés >> <https://scholar.google.com/citations?hl=es&user=ubpY7s4AAAAJ&view_op=list_works&sortby=pubdate> >> Researchgate Andrés >> <https://www.researchgate.net/profile/Andres-Hirigoyen> >> >> - >> >> > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es > -- *Dr. **Andrés Hirigoyen* *Ing. Agr. **(MSc)* * Prof. Ciencias Biológicas* Scholar Andrés <https://scholar.google.com/citations?hl=es&user=ubpY7s4AAAAJ&view_op=list_works&sortby=pubdate> Researchgate Andrés <https://www.researchgate.net/profile/Andres-Hirigoyen> -
Ejemplo_R.xlsx
Description: MS-Excel 2007 spreadsheet
_______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
