-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathScripts.R
More file actions
86 lines (73 loc) · 2.62 KB
/
Copy pathScripts.R
File metadata and controls
86 lines (73 loc) · 2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
names(ciberseg1a) #nombres
dim(ciberseg1b) #dimensiones (filas x campos)
str(ciberseg1b) #estructura
unique(ciberseg1b$FREQ) #categorias
distinct #lo mismo pero en formato dataframe
indicadores <- unique(ciberseg1b$INDICATOR_LABEL)
view(indicadores)
obs <- unique(ciberseg1b$OBS_VALUE)
view(obs)
nrow #cuenta filas
count #cuenta filas por categorias
# JOINS:
left_join(): #mantiene todos de la izquierda
inner_join(): #solo los que coinciden
semi_join(): #filtra izquierda según derecha (sin agregar columnas)
anti_join(): #lo opuesto a semi_join
# 1️⃣ Detectar problemas de datos
# 2️⃣ Ver quiénes no cumplen una condición
# 3️⃣ Chequeo de joins (regla de oro):👉 Si da 0 → join completo
#👉 Si da >0 → hay claves sin match
#✅ Joins con múltiples claves: by = c("col1", "col2")
#✅ Diferencia entre semi_join (solo filtra) e inner_join (trae columnas)
#✅ El group_by() debe ir después del join
#✅ El truco de mean(condicion == valor) para calcular porcentajes
#✅ arrange(desc()) para ordenar descendente
# AGREGACIONES:
group_by() + summarise():# resume datos por grupos
# - all(): TRUE si TODOS cumplen
# - any(): TRUE si AL MENOS UNO cumple
# - n(): cuenta filas
hogares %>%
anti_join(trabajos, by = c("folioviv", "foliohog")) %>%
summarise(
cantidad_hogares = n(),
gasto_promedio = mean(gasto_mon, na.rm = TRUE),
gasto_mediano = median(gasto_mon, na.rm = TRUE),
gasto_maximo = max(gasto_mon, na.rm = TRUE),
ingreso_promedio = mean(ing_cor, na.rm = TRUE)
)
viviendas |>
count(folioviv) |>
filter(n > 1)
Tablas
tabla_resumen <- bind_rows(
hogares %>%
distinct(folioviv, foliohog) %>%
summarise(n = n()) %>%
mutate(fuente = "hogares"),
personas %>%
distinct(folioviv, foliohog) %>%
summarise(n = n()) %>%
mutate(fuente = "personas")
)
tabla_resumen <- bind_rows(
hogares %>%
distinct(folioviv, foliohog) %>%
summarise(n = n()) %>%
mutate(fuente = "hogares"),
personas %>%
distinct(folioviv, foliohog) %>%
summarise(n = n()) %>%
mutate(fuente = "personas")
)
#Pregunta Código correcto
#¿Todos tienen el mismo sexo? n_distinct(sexo) == 1
#¿Todos son hombres? all(sexo == 1)
#¿Todos alfabetizados? all(alfabetism == 1)
#¿Todos tienen la misma edad? n_distinct(edad) == 1
#¿Cuántas edades diferentes hay? n_distinct(edad)
Resumen:
#✅ n_distinct(variable) == 1 → ¿Todos tienen el mismo valor (sin importar cuál)?
#✅ all(variable == valor) → ¿Todos tienen un valor específico?
#❌ n_distinct(variable == 1) → No hace lo que esperás