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.

Presentación de un dataframe longitudinal, contando por año

Espero que uno de ustedes me pueda ayudar con esta pregunta probablemente fácil. La cosa es que tengo un dataframe longitudinal que se ve algo así:

id <- c('1','1','1','2','2','2','3','3','3')
year <- c(2012, 2013, 2014, 2012, 2013, 2014, 2012, 2013, 2014)
ue <- c(1, 0, 0, 1, 1, 0, 1, 1, 1)
mydata <- data.frame(id, year, ue)

La variable ue indica si un encuestado recibió un subsidio de desempleo en un año determinado.

1) Primero quiero crear una tabla simple que me diga cuántos están recibiendo un subsidio de desempleo en el año específico. Algo como esto:

  year ue
1 2012  3
2 2013  2
3 2014  1

2) Quiero presentar la siguiente tabla en un gráfico adecuado, por ejemplo, un histograma.

Espero que alguno de ustedes me pueda ayudar.

Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para responder a tu pregunta, puedes seguir los siguientes pasos:

    1. Para la primera parte de tu pregunta, puedes utilizar las funciones group_by() y summarise() del paquete dplyr para contar el número de observaciones por año y unidad económica (ue).

    “`{r}
    library(dplyr)

    mydata %>%
    group_by(year, ue) %>%
    summarise(count = n())


    Esto te dará la siguiente salida: ```{r} # A tibble: 6 x 3 # Groups: year [3] year ue count <dbl> <dbl> <int> 1 2012 0 1 2 2012 1 2 3 2013 0 1 4 2013 1 1 5 2014 0 1 6 2014 1 1

    Para obtener la salida que quieres, donde solo tienes los años y el número de observaciones para cada ue en ese año, puedes utilizar nuevamente las funciones group_by() y summarise(), pero solo para el año y el conteo:

    “`{r}
    mydata %>%
    group_by(year) %>%
    summarise(count = sum(ue))


    Esto te dará la siguiente salida: ```{r} # A tibble: 3 x 2 year count <dbl> <dbl> 1 2012 3 2 2013 2 3 2014 1
    1. Para la segunda parte de tu pregunta, puedes utilizar ggplot2 para crear un histograma. Aquí tienes un ejemplo de código:

    “`{r}
    library(ggplot2)

    ggplot(data = mydata, aes(x = year, fill = factor(ue))) +
    geom_histogram(position = “dodge”, bins = 5) +
    scale_fill_manual(values = c(“#0072B2″,”#E69F00”)) + # personalizar colores
    labs(x = “Año”, y = “Conteo”,
    title = “Número de beneficiarios de prestaciones por desempleo por año”) + # personalizar etiquetas
    theme_minimal() # personalizar tema
    “`

    Esto te dará un histograma con barras separadas para cada valor de ue, donde el eje x es el año y el eje y es el conteo de observaciones.

    Histograma de beneficiarios de prestaciones por desempleo por año

    ¡Espero que esto te ayude!

Comments are closed.