Re: [R-es] Seleccionar valores consecutivos en un dataframe

2023-06-19 Por tema Jaume Tormo via R-help-es
Hola a todos,

¡Muchisimas gracias!
Con esto que me dais resuelvo el problema y además he aprendido unas
cuantas funciones nuevas.

Jaume.

On Fri, Jun 16, 2023 at 9:27 AM Jaume Tormo  wrote:

> Estimados eRReros,
>
> Tengo un df como el adjunto (en txt y como objeto de R)
> Como veréis hay una columna T/F que se llama germ y cada fila corresponde
> a datos de un día.
> Me gustaría que R fuera siguiendo la columna germ y en cada serie de días
> con TRUE sumara el valor de la columna p. Se trata de saber si en esa serie
> de días con valor T el total de p es mayor que 1 o no.
> He hecho algo parecido con rle() que me cuenta la longitud de las series
> de TRUE, pero este siguiente paso no se como darlo.
> Si uso apply o subset me toma todas las filas del df con T en la columna
> germ. Lo que no se el como decirle a R que empiece por el principio y vaya
> tomando grupo a grupo.
> Me imagino que podría llegar a construir un bucle que lo hiciera, pero no
> quiero pasarme tres horas dándole vueltas si hay una función o combinación
> de funciones que lo hace ¿Alguna sugerencia o me pongo ya con el bucle?
>
> Muchas gracias.
>
> Jaume.
>
>
> --
> Dr. Jaume Tormo.
> Area of Ecology
> Department of Agrarian and Environmental Sciences
> Technological College. Agri-food and Environment
> University of Zaragoza, Spain
> 0034 974292678
> https://flipboard.com/@jaumetormo/hallazgos-interesantes-bj8opmboy
> https://acercad.wordpress.com/
>
>

-- 
Dr. Jaume Tormo.
Area of Ecology
Department of Agrarian and Environmental Sciences
Technological College. Agri-food and Environment
University of Zaragoza, Spain
0034 974292678
https://flipboard.com/@jaumetormo/hallazgos-interesantes-bj8opmboy
https://acercad.wordpress.com/

[[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] Seleccionar valores consecutivos en un dataframe

2023-06-17 Por tema Proyecto R-UCA
Buenas, 

Creo que esto se parece a lo estás buscando, un saludo.

> ejemplo <- read.csv('ejemplo.csv', header=TRUE, sep = ' ')
> head(ejemplo)
 dia p   lim trat   sp  germ estac
1 2019-11-07 0.000 brown gfgs aege FALSE  fall
2 2019-11-08 0.000 brown gfgs aege FALSE  fall
3 2019-11-09 0.000 brown gfgs aege FALSE  fall
4 2019-11-10 0.079 black gfgs aege  TRUE  fall
5 2019-11-11 0.084 black gfgs aege  TRUE  fall
6 2019-11-12 0.081 black gfgs aege  TRUE  fall
> index <- which(diff(ejemplo$germ) != 0)
> ejemplo$cs <- cumsum(ejemplo$p)
> d <- diff(ejemplo$cs[index])
> d
 [1] 0.647 0.000 0.358 0.000 0.259 0.000 0.706 0.000 0.041 0.000 0.698 0.000
[13] 0.052
> d[seq(1, length(d), by = 2)]
[1] 0.647 0.358 0.259 0.706 0.041 0.698 0.052



-- 
--
http://knuth.uca.es/R
--
Proyecto R-UCA
--
Nombre: Manuel Muñoz Márquez
Departamento: Departamento de Estadística e Investigación Operativa
Institución: Escuela Superior de Ingeniería
Organización: Universidad de Cádiz
--

El vie, 16-06-2023 a las 09:27 +0200, Jaume Tormo via R-help-es escribió:
> Estimados eRReros,
> 
> Tengo un df como el adjunto (en txt y como objeto de R)
> Como veréis hay una columna T/F que se llama germ y cada fila corresponde a 
> datos de un día.
> Me gustaría que R fuera siguiendo la columna germ y en cada serie de días con 
> TRUE sumara el valor de la columna p. Se trata de saber si
> en esa serie de días con valor T el total de p es mayor que 1 o no.
> He hecho algo parecido con rle() que me cuenta la longitud de las series de 
> TRUE, pero este siguiente paso no se como darlo.
> Si uso apply o subset me toma todas las filas del df con T en la columna 
> germ. Lo que no se el como decirle a R que empiece por el
> principio y vaya tomando grupo a grupo.
> Me imagino que podría llegar a construir un bucle que lo hiciera, pero no 
> quiero pasarme tres horas dándole vueltas si hay una función o
> combinación de funciones que lo hace ¿Alguna sugerencia o me pongo ya con el 
> bucle?
> 
> Muchas gracias.
> 
> Jaume.
> 
> 
> -- 
> Dr. Jaume Tormo.
> Area of Ecology
> Department of Agrarian and Environmental Sciences
> Technological College. Agri-food and Environment
> University of Zaragoza, Spain
> 0034 974292678
> https://flipboard.com/@jaumetormo/hallazgos-interesantes-bj8opmboy
> https://acercad.wordpress.com/
> 
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help-es__;!!D9dNQwwGXtA!X47Y3pOTwgTP8nnGrIAHAsqLIj41GL5Y_qVAKxL4V2xowSx0jdjNJQv9Zz6Lh2Rtb2ThSaKAeDHRi_WbaMQ$
>  

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Seleccionar valores consecutivos en un dataframe

2023-06-16 Por tema Juan Carlos Lopez Mesa
Hola,
Este código le puede servir para lo que necesita
library(dplyr)

ejemplo$dia <- as.Date(ejemplo$dia)

ejemplo <- arrange(ejemplo, dia)

ejemplo$suma <- NA

ejemplo$suma[1] <- as.numeric(ejemplo$germ)

for(i in 2:nrow(ejemplo)){

  ejemplo$suma[i] <- ifelse(ejemplo$germ[i],
ejemplo$suma[i-1] + ejemplo$p[i],
0)
}


Saludos



El vie, 16 jun 2023 a las 3:21, jose luis via R-help-es (<
r-help-es@r-project.org>) escribió:

>  Hola Jaumecomo todos los valores de p son menores de 1he entendido
> esto: por ejemplo en la fila 5 que sería el segundo TRUE, quieres que la
> nueva variable sea la suma del valor de la fila 4 mas el de la fila 5 y asi
> sucesivamente. ¿o me desvío mucho?
> En viernes, 16 de junio de 2023, 09:28:18 CEST, Jaume Tormo via
> R-help-es  escribió:
>
>  Estimados eRReros,
> Tengo un df como el adjunto (en txt y como objeto de R)Como veréis hay una
> columna T/F que se llama germ y cada fila corresponde a datos de un día.
> Me gustaría que R fuera siguiendo la columna germ y en cada serie de días
> con TRUE sumara el valor de la columna p. Se trata de saber si en esa serie
> de días con valor T el total de p es mayor que 1 o no.
> He hecho algo parecido con rle() que me cuenta la longitud de las series
> de TRUE, pero este siguiente paso no se como darlo.Si uso apply o subset me
> toma todas las filas del df con T en la columna germ. Lo que no se el como
> decirle a R que empiece por el principio y vaya tomando grupo a grupo.Me
> imagino que podría llegar a construir un bucle que lo hiciera, pero no
> quiero pasarme tres horas dándole vueltas si hay una función o combinación
> de funciones que lo hace ¿Alguna sugerencia o me pongo ya con el bucle?
>
> Muchas gracias.
> Jaume.
>
>
> --
> Dr. Jaume Tormo.
> Area of Ecology
> Department of Agrarian and Environmental Sciences
> Technological College. Agri-food and Environment
> University of Zaragoza, Spain
> 0034 974292678
> https://flipboard.com/@jaumetormo/hallazgos-interesantes-bj8opmboy
> https://acercad.wordpress.com/
>
> ___
> 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
>

-- 
*Aviso legal:* El contenido de este mensaje y los archivos adjuntos son 
confidenciales y de uso exclusivo de la Universidad Nacional de Colombia. 
Se encuentran dirigidos sólo para el uso del destinatario al cual van 
enviados. La reproducción, lectura y/o copia se encuentran prohibidas a 
cualquier persona diferente a este y puede ser ilegal. Si usted lo ha 
recibido por error, infórmenos y elimínelo de su correo. Los Datos 
Personales serán tratados conforme a la Ley 1581 de 2012 y a nuestra 
Política de Datos Personales que podrá consultar en la página web 
www.unal.edu.co .* *Las opiniones, informaciones, 
conclusiones y cualquier otro tipo de dato contenido en este correo 
electrónico, no relacionados con la actividad de la Universidad Nacional de 
Colombia, se entenderá como personales y de ninguna manera son avaladas por 
la Universidad.

[[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] Seleccionar valores consecutivos en un dataframe

2023-06-16 Por tema jose luis via R-help-es
 Hola Jaumecomo todos los valores de p son menores de 1he entendido esto: 
por ejemplo en la fila 5 que sería el segundo TRUE, quieres que la nueva 
variable sea la suma del valor de la fila 4 mas el de la fila 5 y asi 
sucesivamente. ¿o me desvío mucho?
En viernes, 16 de junio de 2023, 09:28:18 CEST, Jaume Tormo via R-help-es 
 escribió:  
 
 Estimados eRReros,
Tengo un df como el adjunto (en txt y como objeto de R)Como veréis hay una 
columna T/F que se llama germ y cada fila corresponde a datos de un día.
Me gustaría que R fuera siguiendo la columna germ y en cada serie de días con 
TRUE sumara el valor de la columna p. Se trata de saber si en esa serie de días 
con valor T el total de p es mayor que 1 o no.
He hecho algo parecido con rle() que me cuenta la longitud de las series de 
TRUE, pero este siguiente paso no se como darlo.Si uso apply o subset me toma 
todas las filas del df con T en la columna germ. Lo que no se el como decirle a 
R que empiece por el principio y vaya tomando grupo a grupo.Me imagino que 
podría llegar a construir un bucle que lo hiciera, pero no quiero pasarme tres 
horas dándole vueltas si hay una función o combinación de funciones que lo hace 
¿Alguna sugerencia o me pongo ya con el bucle?

Muchas gracias.
Jaume.


-- 
Dr. Jaume Tormo.
Area of Ecology
Department of Agrarian and Environmental Sciences
Technological College. Agri-food and Environment
University of Zaragoza, Spain
0034 974292678
https://flipboard.com/@jaumetormo/hallazgos-interesantes-bj8opmboy
https://acercad.wordpress.com/

___
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] Seleccionar valores consecutivos en un dataframe

2023-06-16 Por tema Jaume Tormo via R-help-es
Estimados eRReros,

Tengo un df como el adjunto (en txt y como objeto de R)
Como veréis hay una columna T/F que se llama germ y cada fila corresponde a
datos de un día.
Me gustaría que R fuera siguiendo la columna germ y en cada serie de días
con TRUE sumara el valor de la columna p. Se trata de saber si en esa serie
de días con valor T el total de p es mayor que 1 o no.
He hecho algo parecido con rle() que me cuenta la longitud de las series de
TRUE, pero este siguiente paso no se como darlo.
Si uso apply o subset me toma todas las filas del df con T en la columna
germ. Lo que no se el como decirle a R que empiece por el principio y vaya
tomando grupo a grupo.
Me imagino que podría llegar a construir un bucle que lo hiciera, pero no
quiero pasarme tres horas dándole vueltas si hay una función o combinación
de funciones que lo hace ¿Alguna sugerencia o me pongo ya con el bucle?

Muchas gracias.

Jaume.


-- 
Dr. Jaume Tormo.
Area of Ecology
Department of Agrarian and Environmental Sciences
Technological College. Agri-food and Environment
University of Zaragoza, Spain
0034 974292678
https://flipboard.com/@jaumetormo/hallazgos-interesantes-bj8opmboy
https://acercad.wordpress.com/
"dia" "p" "lim" "trat" "sp" "germ" "estac"
"1" 2019-11-07 0 "brown" "gfgs" "aege" FALSE "fall"
"2" 2019-11-08 0 "brown" "gfgs" "aege" FALSE "fall"
"3" 2019-11-09 0 "brown" "gfgs" "aege" FALSE "fall"
"4" 2019-11-10 0.079 "black" "gfgs" "aege" TRUE "fall"
"5" 2019-11-11 0.084 "black" "gfgs" "aege" TRUE "fall"
"6" 2019-11-12 0.081 "black" "gfgs" "aege" TRUE "fall"
"7" 2019-11-13 0.116 "black" "gfgs" "aege" TRUE "fall"
"8" 2019-11-14 0.097 "black" "gfgs" "aege" TRUE "fall"
"9" 2019-11-15 0.059 "black" "gfgs" "aege" TRUE "fall"
"10" 2019-11-16 0.042 "black" "gfgs" "aege" TRUE "fall"
"11" 2019-11-17 0.035 "black" "gfgs" "aege" TRUE "fall"
"12" 2019-11-18 0.054 "black" "gfgs" "aege" TRUE "fall"
"13" 2019-11-19 0 "brown" "gfgs" "aege" FALSE "fall"
"14" 2019-11-20 0 "brown" "gfgs" "aege" FALSE "fall"
"15" 2019-11-21 0.094 "black" "gfgs" "aege" TRUE "fall"
"16" 2019-11-22 0.114 "black" "gfgs" "aege" TRUE "fall"
"17" 2019-11-23 0.092 "black" "gfgs" "aege" TRUE "fall"
"18" 2019-11-24 0.058 "black" "gfgs" "aege" TRUE "fall"
"19" 2019-11-25 0 "brown" "gfgs" "aege" FALSE "fall"
"20" 2019-11-26 0.115 "black" "gfgs" "aege" TRUE "fall"
"21" 2019-11-27 0.144 "black" "gfgs" "aege" TRUE "fall"
"22" 2019-11-28 0 "brown" "gfgs" "aege" FALSE "fall"
"23" 2019-11-29 0 "brown" "gfgs" "aege" FALSE "fall"
"24" 2019-11-30 0 "brown" "gfgs" "aege" FALSE "fall"
"25" 2019-12-01 0.113 "black" "gfgs" "aege" TRUE "winter"
"26" 2019-12-02 0.099 "black" "gfgs" "aege" TRUE "winter"
"27" 2019-12-03 0.076 "black" "gfgs" "aege" TRUE "winter"
"28" 2019-12-04 0.084 "black" "gfgs" "aege" TRUE "winter"
"29" 2019-12-05 0.103 "black" "gfgs" "aege" TRUE "winter"
"30" 2019-12-06 0.113 "black" "gfgs" "aege" TRUE "winter"
"31" 2019-12-07 0.056 "black" "gfgs" "aege" TRUE "winter"
"32" 2019-12-08 0.062 "black" "gfgs" "aege" TRUE "winter"
"33" 2019-12-09 0 "brown" "gfgs" "aege" FALSE "winter"
"34" 2019-12-10 0 "brown" "gfgs" "aege" FALSE "winter"
"35" 2019-12-11 0 "brown" "gfgs" "aege" FALSE "winter"
"36" 2019-12-12 0 "brown" "gfgs" "aege" FALSE "winter"
"37" 2019-12-13 0 "brown" "gfgs" "aege" FALSE "winter"
"38" 2019-12-14 0 "brown" "gfgs" "aege" FALSE "winter"
"39" 2019-12-15 0.041 "black" "gfgs" "aege" TRUE "winter"
"40" 2019-12-16 0 "brown" "gfgs" "aege" FALSE "winter"
"41" 2019-12-17 0.076 "black" "gfgs" "aege" TRUE "winter"
"42" 2019-12-18 0.057 "black" "gfgs" "aege" TRUE "winter"
"43" 2019-12-19 0.095 "black" "gfgs" "aege" TRUE "winter"
"44" 2019-12-20 0.163 "black" "gfgs" "aege" TRUE "winter"
"45" 2019-12-21 0.175 "black" "gfgs" "aege" TRUE "winter"
"46" 2019-12-22 0.132 "black" "gfgs" "aege" TRUE "winter"
"47" 2019-12-23 0 "brown" "gfgs" "aege" FALSE "winter"
"48" 2019-12-24 0 "brown" "gfgs" "aege" FALSE "winter"
"49" 2019-12-25 0.052 "black" "gfgs" "aege" TRUE "winter"
"50" 2019-12-26 0 "brown" "gfgs" "aege" FALSE "winter"


ejemplo.RData
Description: Binary data
___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es