es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Total de filas en groupby y qué constituye los totales a continuación.

¿Cómo puedo lograr esto?

Ve la tabla a continuación.

Aquí hay una descripción de la imagen

Quiero tener un total por grupo y luego seguir con otros cálculos.

Por ejemplo, Mun y Wem están bajo el grupo CSS, totalizando el recuento de CSS y sumando el porcentaje de recuento y el porcentaje de valor nominal.

Haz lo mismo para GOLA, tal y como aparece en la tabla de la imagen a continuación.

He probado el siguiente código:

refund_table <- Refund%>%
  group_by(Network, Merchant)%>%
  summarise(Transaction_count = n(), FaceValue = sum(FaceValue))%>%
  mutate("Count %" = Transaction_count/sum(Transaction_count))%>%
  mutate("Facevalue %" = FaceValue /sum(FaceValue),
    Network_refund = replace(Network_refund, duplicated(Network_refund),''))
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para lograr la tabla deseada, puedes usar la función group_by() para agrupar la tabla por Red y luego por Comerciante. Luego, usa la función summarise() para calcular el total de Transaction_count y FaceValue por grupo. Finalmente, usa la función mutate() para calcular el porcentaje de Count y Facevalue por grupo.

    Aquí tienes un ejemplo de código:

    library(tidyverse)
    
    Refund %>%
      group_by(Network, Merchant) %>%
      summarise(Transaction_count = n(),
                FaceValue = sum(FaceValue)) %>%
      group_by(Network) %>%
      mutate(Total_count = sum(Transaction_count)) %>%
      mutate(`Count %` = round(Transaction_count/Total_count * 100, 2),
             `Facevalue %` = round(FaceValue/sum(FaceValue) * 100, 2)) %>%
      select(Network, Merchant, Transaction_count, `Count %`, FaceValue, `Facevalue %`)
    

    Este código primero agrupa la tabla por Network y Merchant, luego calcula el Transaction_count y FaceValue por grupo. Luego agrupa la tabla solo por Network y calcula el Total_count para cada red. Finalmente, calcula el % Count y % Facevalue por grupo, redondea los porcentajes a dos decimales utilizando la función round() y selecciona las columnas que coinciden con el resultado deseado.

Comments are closed.