Skip to content

[R-es] Sumar valores dentro de una clase

6 messages · Carlos Ortega, Andrés Hirigoyen, Javier Marcuzzi

#
Buenas mi duda es cómo sumar los valores de una variable dentro de una
clase ya creada.
Por ejemplo:

#Creo el dataset que voy a completar, primero la secuencia con la q hare
las clases:
cl<-round(seq(0,max(data$h),0.5),2)
#  Mi data frame con las clases
df<-data.frame(min.h=cl[-length(cl)],max.h=cl[-1])
#  Creo la columna "Largo" con la cantidad de observaciones que están entre
el mínimo y el máximo de cada clase ( [i])
for (i in 1:nrow(df)) df$Largo[i]<-nrow(subset(data, h>df$min.h[i] &
h<=df$max.h[i]))
Ahora, mi duda es cómo sumar el valor de esas observaciones para crear una
nueva variable por clase.
Espero se entienda, desde ya muchas gracias
#
Hola,

Si pudieras compartir un subconjunto de datos con el que se pudiera
entender mejor tu código...

Gracias,
Carlos Ortega
www.qualityexcellence.es


El sáb., 4 jul. 2020 a las 18:00, Andrés Hirigoyen (<
andreshirigoyen en gmail.com>) escribió:

  
    
#
Va ejemplo:

data <- Ejemplo_List
cl<-round(seq(0,max(data$h),10),2) # seq para clases
df<-data.frame(min.h=cl[-length(cl)],max.h=cl[-1])  # Data frame con las
clases
df$class<-paste(df$min.h,df$max.h,sep="-") # Armo las Clases
df$Largo <-NA # Variable nueva
  #  Completo la columna "Largo" con la cantidad de observaciones que están
entre el mínimo y el máximo de cada clase ( [i])
for (i in 1:nrow(df)) df$Largo[i]<-nrow(subset(data, h>df$min.h[i] &
h<=df$max.h[i]))
## Objetivo es crear la variable Total que es la suma de ID de cada
observación perteneciente a cada clase
  df$Total <-NA
Muchas gracias

El sáb., 4 de jul. de 2020 a la(s) 16:59, Carlos Ortega (
cof en qualityexcellence.es) escribió:

  
    
#
Hola,

¿Son tres columnas?...
Solo tienen nombre dos...¿?

       h    ID
 1: 18,2 20556
 2: 18,5 20556
 3: 20,9 20556
 4: 19,2 20665

Y lo que quieres al final ¿es sumar el valor de ID de cada clase?

Gracias,
Carlos Ortega.


El sáb., 4 jul. 2020 a las 22:30, Andrés Hirigoyen (<
andreshirigoyen en gmail.com>) escribió:

  
    
#
De los datos de partida creo un nuevo data set donde las filas son rangos
de h (Clase). Las variables de ese nuevo set son: Largo, que corresponde al
conteo de observaciones que caen en cada Clase, y Total que es la suma de
los valores de ID de las observaciones de casa clase.  Por ejemplo para la
primer Clase que va de 17 a 19 tengo 2 observaciones y la suma de ID es
4400, para la.segunda Clase tengo 3 observaciones y la suma de ID es 8744

Clase; Largo; Total
17-19; 2; 4400
19-20;3; 8744

El sáb., 4 de julio de 2020 18:26, Carlos Ortega <cof en qualityexcellence.es>
escribió:

  
  
#
Estimado Andés Hirigoyen

¿Puedes escribir todo desde cero? En mi caso no pude duplicar ni una línea
de su código, será configuración, incomprensión de mi parte. No lo se.
Tampoco logro interpretar que desea, la clase como clase estadística (alto,
rugoso, liso, bajo), o clase como colocar algo dentro de una clase como en
la programación orientada a objetos y luego acceder a este valor desde otro
lugar de R. En lo personal no me gusta tratar a R como lenguaje orientado a
objetos, aunque hay algunos que dicen que lo es, y otra documentación donde
dice que lo hace como si fuera. De cualquier forma me resulta mucho más
limpio manipular lo menos posible los datos desde R, aunque esto es el
mayor trabajo.

Si usted puede enviar un código que pueda duplicar en mi computadora, sobre
este podría intentar ayudarlo.

Javier Rubén Marcuzzi

El sáb., 4 jul. 2020 a las 18:39, Andrés Hirigoyen (<
andreshirigoyen en gmail.com>) escribió: