library("tidyverse")
library("readr")
<- url("https://raw.githubusercontent.com/ANID-GITHUB/Historico-de-Proyectos-Adjudicados/da63cab4fa424eaaac2a108b0582c83fa4f229c1/BDH_Proyectos.csv")
path
<- read_delim(path, delim = ";")
data_anid
<- data_anid %>% rename(codigo_proyecto = CODIGO_PROYECTO, anno = ANO_FALLO, sexo = SEXO, area = AREA_OCDE, duracion = DURACION_MESES, monto = `MONTO ADJUDICADO (MILES $)`) %>% select(codigo_proyecto,anno, sexo,area,monto)
data_anid
<- read.csv("https://raw.githubusercontent.com/mebucca/dar_soc4001/master/homework/ipc.csv") datos_ipc
SOC4001 Procesamiento avanzado de bases de datos en R
Ponderación: 12% de la nota final del curso
Entrega: Desde el momento de entrega, los estudiantes una semana de plazo para completar esta tarea.
Formato: Desarrollar esta tarea en un RScript, agregando comentarios cuando sea necesario.
El código a continuación carga la Base de Datos Histórica Proyectos Adjudicados ANID (ex-conicyt) y extrae una selección de variables que son almacenados en el objecto data_anid
. Además, carga otra base con datos del IPC anual.
Descripción de los datos: La Agencia Nacional de Investigación y Desarrollo (ANID) cada año adjudica financiamiento para proyectos en Ciencia y Tecnología a través de sus diferentes concursos. La base de datos denominada “BDH_Proyectos” contiene la información disponible de proyectos adjudicados por la Agencia (antes del 2020, CONICYT) desde el año 1982 hasta el 2020, con fecha de corte al 31 de diciembre del 2020. Cada fila representa una iniciativa adjudicada. Los datos deben verse así:
# A tibble: 6 × 5
codigo_proyecto anno sexo area monto
<chr> <dbl> <chr> <chr> <dbl>
1 1820005 1982 HOMBRE CIENCIAS NATURALES 300
2 1820006 1982 HOMBRE CIENCIAS MEDICAS Y DE LA SALUD 130
3 1820009 1982 HOMBRE CIENCIAS NATURALES 506
4 1820010 1982 HOMBRE HUMANIDADES 335
5 1820015 1982 HOMBRE CIENCIAS NATURALES 260
6 1820043 1982 HOMBRE CIENCIAS AGRICOLAS 464
- Usando los comandos
group_by()
ysummarise()
produce la siguiente tabla y asígnala al objetotabla_1
. El resultado debe verse así y corresponde al monto promedio asignado a cada investigadores de caga sexo en cada area:
# A tibble: 6 × 4
# Groups: area, anno [4]
area anno sexo monto
<chr> <dbl> <chr> <dbl>
1 CIENCIAS AGRICOLAS 1982 HOMBRE 408.
2 CIENCIAS AGRICOLAS 1982 MUJER 549
3 CIENCIAS AGRICOLAS 1983 HOMBRE 382.
4 CIENCIAS AGRICOLAS 1984 HOMBRE 355.
5 CIENCIAS AGRICOLAS 1984 MUJER 373
6 CIENCIAS AGRICOLAS 1985 HOMBRE 414.
- En la base de datos
datos_ipc
remueve los años con valores perdidos en la variabledatos_ipc$ipc
, usa. Conserva sólo las variablesanno
eipc
. Los datos deben verse así:
X anno ipc
1 1 1982 2.794501
2 2 1983 8.982651
3 3 1984 6.534480
4 4 1985 10.142088
5 5 1986 6.450049
6 6 1987 6.541436
- Usando algunos de los comandos
_join()
junta los datos entabla_1
ydatos_ipc
preservando toda la información disponible entabla_1
. El resultado debe verse así:
# A tibble: 6 × 6
# Groups: area, anno [4]
area anno sexo monto X ipc
<chr> <dbl> <chr> <dbl> <int> <dbl>
1 CIENCIAS AGRICOLAS 1982 HOMBRE 408. 1 2.79
2 CIENCIAS AGRICOLAS 1982 MUJER 549 1 2.79
3 CIENCIAS AGRICOLAS 1983 HOMBRE 382. 2 8.98
4 CIENCIAS AGRICOLAS 1984 HOMBRE 355. 3 6.53
5 CIENCIAS AGRICOLAS 1984 MUJER 373 3 6.53
6 CIENCIAS AGRICOLAS 1985 HOMBRE 414. 4 10.1
- Crea la nueva variable
monto_precios2021
multiplicando las variablesmonto
eipc
. Posteriormente remueve las variablesmonto
eipc
. El resultado debe verse así:
# A tibble: 608 × 5
# Groups: area, anno [277]
area anno sexo X monto_precios2021
<chr> <dbl> <chr> <int> <dbl>
1 CIENCIAS AGRICOLAS 1982 HOMBRE 1 1141.
2 CIENCIAS AGRICOLAS 1982 MUJER 1 1534.
3 CIENCIAS AGRICOLAS 1983 HOMBRE 2 3428.
4 CIENCIAS AGRICOLAS 1984 HOMBRE 3 2317.
5 CIENCIAS AGRICOLAS 1984 MUJER 3 2437.
6 CIENCIAS AGRICOLAS 1985 HOMBRE 4 4198.
7 CIENCIAS AGRICOLAS 1986 HOMBRE 5 7220.
8 CIENCIAS AGRICOLAS 1986 MUJER 5 3161.
9 CIENCIAS AGRICOLAS 1987 HOMBRE 6 15665.
10 CIENCIAS AGRICOLAS 1987 MUJER 6 9688.
# ℹ 598 more rows
- Usando el comando
pivot_wider()
transforma los datos de la siguiente manera.
# A tibble: 277 × 6
# Groups: area, anno [277]
area anno X HOMBRE MUJER `SIN INFORMACION`
<chr> <dbl> <int> <dbl> <dbl> <dbl>
1 CIENCIAS AGRICOLAS 1982 1 1141. 1534. NA
2 CIENCIAS AGRICOLAS 1983 2 3428. NA NA
3 CIENCIAS AGRICOLAS 1984 3 2317. 2437. NA
4 CIENCIAS AGRICOLAS 1985 4 4198. NA NA
5 CIENCIAS AGRICOLAS 1986 5 7220. 3161. NA
6 CIENCIAS AGRICOLAS 1987 6 15665. 9688. NA
7 CIENCIAS AGRICOLAS 1988 7 41485. NA NA
8 CIENCIAS AGRICOLAS 1989 8 44183. NA NA
9 CIENCIAS AGRICOLAS 1990 9 77329. 84307. NA
10 CIENCIAS AGRICOLAS 1991 10 1118740. 462418. NA
# ℹ 267 more rows
- Usa la función
replace_na()
para reemplazar los valores perdidos en las variablesHOMBRE
yMUJER
por ceros. El resultado debe verse así:
# A tibble: 277 × 6
# Groups: area, anno [277]
area anno X HOMBRE MUJER `SIN INFORMACION`
<chr> <dbl> <int> <dbl> <dbl> <dbl>
1 CIENCIAS AGRICOLAS 1982 1 1141. 1534. NA
2 CIENCIAS AGRICOLAS 1983 2 3428. 0 NA
3 CIENCIAS AGRICOLAS 1984 3 2317. 2437. NA
4 CIENCIAS AGRICOLAS 1985 4 4198. 0 NA
5 CIENCIAS AGRICOLAS 1986 5 7220. 3161. NA
6 CIENCIAS AGRICOLAS 1987 6 15665. 9688. NA
7 CIENCIAS AGRICOLAS 1988 7 41485. 0 NA
8 CIENCIAS AGRICOLAS 1989 8 44183. 0 NA
9 CIENCIAS AGRICOLAS 1990 9 77329. 84307. NA
10 CIENCIAS AGRICOLAS 1991 10 1118740. 462418. NA
# ℹ 267 more rows
- Crea una nueva variable llamada
dif_hombremujer
que mida la diferencia entre el monto asignado a hombres y mujeres= HOMBRE - MUJER
. Posteriormente conserva sólo las variablesanno
,area
ydif_hombremujer
. El resultado debe verse así:
# A tibble: 277 × 3
# Groups: area, anno [277]
anno area dif_hombremujer
<dbl> <chr> <dbl>
1 1982 CIENCIAS AGRICOLAS -394.
2 1983 CIENCIAS AGRICOLAS 3428.
3 1984 CIENCIAS AGRICOLAS -120.
4 1985 CIENCIAS AGRICOLAS 4198.
5 1986 CIENCIAS AGRICOLAS 4060.
6 1987 CIENCIAS AGRICOLAS 5978.
7 1988 CIENCIAS AGRICOLAS 41485.
8 1989 CIENCIAS AGRICOLAS 44183.
9 1990 CIENCIAS AGRICOLAS -6978.
10 1991 CIENCIAS AGRICOLAS 656322.
# ℹ 267 more rows
- Usando el comando
pivot_wider()
modifica la tabla producida en (7) y produce la siguiente tabla:
# A tibble: 39 × 10
# Groups: anno [39]
anno `CIENCIAS AGRICOLAS` CIENCIAS MEDICAS Y DE LA SA…¹ `CIENCIAS NATURALES`
<dbl> <dbl> <dbl> <dbl>
1 1982 -394. -147. 76.6
2 1983 3428. 3425. -344.
3 1984 -120. 305. 63.6
4 1985 4198. 189. 389.
5 1986 4060. 1025. 4238.
6 1987 5978. 16343. -509.
7 1988 41485. 11794. -6313.
8 1989 44183. 14803. -1604.
9 1990 -6978. 30467. 8112.
10 1991 656322. 18343. 117489.
# ℹ 29 more rows
# ℹ abbreviated name: ¹`CIENCIAS MEDICAS Y DE LA SALUD`
# ℹ 6 more variables: `CIENCIAS SOCIALES` <dbl>, HUMANIDADES <dbl>,
# `INGENIERIA Y TECNOLOGIA` <dbl>, MULTIDISCIPLINARIO <dbl>,
# `NO APLICA` <dbl>, `SIN INFORMACION` <dbl>
- Elige el valor correspondiente a una celda cualquiera y describe la información que comunica.