library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
library(tidyr)
#install.packages("summarytools")
library(summarytools)
#install.packages("gridExtra")
library(gridExtra)
##
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
library(stats)
library(readxl)
#file.choose()
Base_caso_turismo <- read_excel("/Users/marianaguevara/Downloads/Base Caso Turismo .xlsx")
## New names:
## • `` -> `...54`
View(Base_caso_turismo)
# Resumen descriptivo básico de las variables numéricas
str(Base_caso_turismo)
## tibble [935 × 54] (S3: tbl_df/tbl/data.frame)
## $ StartDate : POSIXct[1:935], format: "2020-03-05 08:54:01" "2020-03-05 09:03:48" ...
## $ EndDate : POSIXct[1:935], format: "2020-03-05 09:01:58" "2020-03-05 09:05:44" ...
## $ IPAddress : chr [1:935] "131.178.54.55" "131.178.200.66" "200.95.170.77" "131.178.54.69" ...
## $ Progress : num [1:935] 100 100 100 100 100 100 100 100 100 100 ...
## $ Duration (in seconds): num [1:935] 477 115 257 916 255 ...
## $ Finished : num [1:935] 1 1 1 1 1 1 1 1 1 1 ...
## $ RecordedDate : POSIXct[1:935], format: "2020-03-05 09:01:59" "2020-03-05 09:05:44" ...
## $ ResponseId : chr [1:935] "R_1HNq2eWcYHIucIF" "R_3GlhbBuuVXrn7Wa" "R_27Nh8d4iF86rUuK" "R_uf5wi6KfNeBnmal" ...
## $ LocationLatitude : num [1:935] 25.7 25.6 25.7 25.6 25.8 ...
## $ LocationLongitude : num [1:935] -100 -100 -100 -100 -100 ...
## $ DistributionChannel : chr [1:935] "anonymous" "anonymous" "anonymous" "anonymous" ...
## $ UserLanguage : chr [1:935] "EN" "EN" "EN" "EN" ...
## $ Q2 : num [1:935] 1 1 1 1 1 1 2 1 1 2 ...
## $ Q3_1 : num [1:935] 1 1 1 NA 1 1 2 2 2 1 ...
## $ Q3_2 : num [1:935] 2 2 2 NA 3 2 1 3 3 2 ...
## $ Q3_3 : num [1:935] 3 3 3 NA 2 3 3 1 1 3 ...
## $ Q4_1 : num [1:935] 1 1 1 NA 1 1 1 1 NA 1 ...
## $ Q4_2 : num [1:935] NA 1 1 1 1 1 NA 1 1 1 ...
## $ Q4_3 : num [1:935] 1 1 1 1 1 1 1 1 NA 1 ...
## $ Q4_4 : num [1:935] NA 1 NA 1 1 1 1 NA NA NA ...
## $ Q4_5 : num [1:935] NA 1 NA 1 NA NA 1 NA NA NA ...
## $ Q4_6 : num [1:935] 1 1 NA NA 1 1 NA NA NA 1 ...
## $ Q4_7 : num [1:935] NA 1 1 NA 1 1 1 1 1 1 ...
## $ Q4_8 : num [1:935] 1 1 1 1 NA 1 1 NA NA 1 ...
## $ Q4_9 : num [1:935] NA 1 NA 1 NA 1 1 NA NA 1 ...
## $ Q4_10 : num [1:935] NA 1 1 NA 1 1 1 1 1 1 ...
## $ Q4_11 : num [1:935] NA 1 1 1 NA NA NA NA NA NA ...
## $ Q4_12 : num [1:935] 1 1 1 NA NA 1 1 NA NA NA ...
## $ Q6_1 : num [1:935] 4 7 7 5 7 7 5 5 5 5 ...
## $ Q6_2 : num [1:935] 5 6 5 7 5 7 7 5 5 5 ...
## $ Q6_3 : num [1:935] 7 6 5 6 7 7 7 5 5 6 ...
## $ Q6_4 : num [1:935] 4 5 6 5 5 7 7 5 5 7 ...
## $ Q6_5 : num [1:935] 6 5 7 6 6 7 7 4 4 6 ...
## $ Q6_6 : num [1:935] 7 4 7 5 7 7 5 4 3 7 ...
## $ Q6_7 : num [1:935] 7 6 6 7 7 4 4 2 4 5 ...
## $ Q6_8 : num [1:935] 7 7 7 5 7 7 7 7 4 7 ...
## $ Q6_9 : num [1:935] 5 6 7 6 6 7 3 5 4 4 ...
## $ Q6_10 : num [1:935] 6 6 7 5 7 7 3 6 4 2 ...
## $ Q6_11 : num [1:935] 4 6 1 5 3 7 1 1 4 1 ...
## $ Q6_12 : num [1:935] 4 6 3 5 7 7 7 2 4 6 ...
## $ Q6_13 : num [1:935] 5 6 7 6 5 7 3 3 4 2 ...
## $ Q6_14 : num [1:935] 4 5 4 6 5 4 1 3 4 3 ...
## $ Q6_15 : num [1:935] 5 6 5 3 3 2 1 2 4 1 ...
## $ Q6_16 : num [1:935] 7 5 7 7 7 7 4 5 4 4 ...
## $ Q6_17 : num [1:935] 3 6 7 4 5 7 4 6 4 4 ...
## $ Q6_18 : num [1:935] 4 6 4 6 4 2 1 1 4 3 ...
## $ Q7 : num [1:935] 3 4 3 4 2 4 2 20 0 0 ...
## $ Q10 : num [1:935] 1 4 4 4 1 3 1 3 2 1 ...
## $ Q9 : num [1:935] 2 1 3 1 3 1 3 1 2 2 ...
## $ Q12 : num [1:935] 19 22 21 22 21 56 36 23 21 22 ...
## $ Q12_1 : num [1:935] 1 1 1 1 1 4 2 1 1 1 ...
## $ Q11 : num [1:935] 2 1 2 2 2 2 2 2 1 1 ...
## $ Q13 : num [1:935] 1 1 1 1 1 1 1 1 1 1 ...
## $ ...54 : logi [1:935] NA NA NA NA NA NA ...
summary(Base_caso_turismo)
## StartDate EndDate
## Min. :2020-03-04 04:54:34.00 Min. :2020-03-04 04:57:13.00
## 1st Qu.:2020-03-08 19:28:15.00 1st Qu.:2020-03-08 19:32:51.50
## Median :2020-03-09 17:37:12.00 Median :2020-03-09 17:39:08.00
## Mean :2020-03-13 14:25:03.80 Mean :2020-03-13 15:13:52.72
## 3rd Qu.:2020-03-20 05:49:28.00 3rd Qu.:2020-03-20 05:59:40.00
## Max. :2020-03-26 07:10:06.00 Max. :2020-03-26 07:50:16.00
##
## IPAddress Progress Duration (in seconds) Finished
## Length:935 Min. : 50.00 Min. : 59.0 Min. :0.0000
## Class :character 1st Qu.:100.00 1st Qu.: 183.0 1st Qu.:1.0000
## Mode :character Median :100.00 Median : 309.0 Median :1.0000
## Mean : 94.17 Mean : 2920.7 Mean :0.8834
## 3rd Qu.:100.00 3rd Qu.: 507.5 3rd Qu.:1.0000
## Max. :100.00 Max. :500660.0 Max. :1.0000
##
## RecordedDate ResponseId LocationLatitude
## Min. :2020-03-04 04:57:13.00 Length:935 Min. :17.99
## 1st Qu.:2020-03-08 21:05:23.50 Class :character 1st Qu.:25.64
## Median :2020-03-11 09:18:35.00 Mode :character Median :25.74
## Mean :2020-03-14 10:50:52.36 Mean :31.07
## 3rd Qu.:2020-03-22 04:29:48.50 3rd Qu.:41.66
## Max. :2020-03-30 07:27:42.00 Max. :47.21
## NA's :109
## LocationLongitude DistributionChannel UserLanguage Q2
## Min. :-122.399 Length:935 Length:935 Min. :1.00
## 1st Qu.:-100.311 Class :character Class :character 1st Qu.:1.00
## Median :-100.260 Mode :character Mode :character Median :1.00
## Mean : -61.751 Mean :1.38
## 3rd Qu.: -2.253 3rd Qu.:2.00
## Max. : 15.560 Max. :2.00
## NA's :109
## Q3_1 Q3_2 Q3_3 Q4_1 Q4_2
## Min. :1.000 Min. :1.000 Min. :1.00 Min. :1 Min. :1
## 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:2.00 1st Qu.:1 1st Qu.:1
## Median :1.000 Median :2.000 Median :2.00 Median :1 Median :1
## Mean :1.645 Mean :2.046 Mean :2.31 Mean :1 Mean :1
## 3rd Qu.:2.000 3rd Qu.:3.000 3rd Qu.:3.00 3rd Qu.:1 3rd Qu.:1
## Max. :3.000 Max. :3.000 Max. :3.00 Max. :1 Max. :1
## NA's :79 NA's :79 NA's :79 NA's :115 NA's :233
## Q4_3 Q4_4 Q4_5 Q4_6 Q4_7
## Min. :1 Min. :1 Min. :1 Min. :1 Min. :1
## 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.:1
## Median :1 Median :1 Median :1 Median :1 Median :1
## Mean :1 Mean :1 Mean :1 Mean :1 Mean :1
## 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1
## Max. :1 Max. :1 Max. :1 Max. :1 Max. :1
## NA's :398 NA's :561 NA's :562 NA's :433 NA's :328
## Q4_8 Q4_9 Q4_10 Q4_11 Q4_12
## Min. :1 Min. :1 Min. :1 Min. :1 Min. :1
## 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.:1
## Median :1 Median :1 Median :1 Median :1 Median :1
## Mean :1 Mean :1 Mean :1 Mean :1 Mean :1
## 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1
## Max. :1 Max. :1 Max. :1 Max. :1 Max. :1
## NA's :454 NA's :501 NA's :445 NA's :697 NA's :393
## Q6_1 Q6_2 Q6_3 Q6_4
## Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:4.000 1st Qu.:4.000 1st Qu.:4.000 1st Qu.:4.000
## Median :5.000 Median :6.000 Median :6.000 Median :5.000
## Mean :5.039 Mean :5.352 Mean :5.361 Mean :4.994
## 3rd Qu.:6.000 3rd Qu.:7.000 3rd Qu.:7.000 3rd Qu.:6.000
## Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.000
##
## Q6_5 Q6_6 Q6_7 Q6_8 Q6_9
## Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.00 Min. :1.000
## 1st Qu.:4.000 1st Qu.:5.000 1st Qu.:4.000 1st Qu.:5.00 1st Qu.:3.000
## Median :6.000 Median :6.000 Median :5.000 Median :7.00 Median :5.000
## Mean :5.471 Mean :5.548 Mean :4.748 Mean :5.96 Mean :4.551
## 3rd Qu.:7.000 3rd Qu.:7.000 3rd Qu.:6.000 3rd Qu.:7.00 3rd Qu.:6.000
## Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.00 Max. :7.000
##
## Q6_10 Q6_11 Q6_12 Q6_13
## Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:4.000 1st Qu.:1.000 1st Qu.:4.000 1st Qu.:3.000
## Median :5.000 Median :2.000 Median :5.000 Median :4.000
## Mean :4.811 Mean :2.718 Mean :4.943 Mean :4.321
## 3rd Qu.:6.000 3rd Qu.:4.000 3rd Qu.:6.000 3rd Qu.:6.000
## Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.000
##
## Q6_14 Q6_15 Q6_16 Q6_17
## Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:2.000 1st Qu.:1.000 1st Qu.:4.000 1st Qu.:3.000
## Median :4.000 Median :2.000 Median :6.000 Median :5.000
## Mean :3.953 Mean :3.098 Mean :5.332 Mean :4.645
## 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:7.000 3rd Qu.:6.000
## Max. :7.000 Max. :7.000 Max. :7.000 Max. :7.000
##
## Q6_18 Q7 Q10 Q9
## Min. :1.000 Min. : 0.000 Min. :1.000 Min. :1.000
## 1st Qu.:3.000 1st Qu.: 2.000 1st Qu.:1.000 1st Qu.:1.000
## Median :4.000 Median : 3.000 Median :1.000 Median :2.000
## Mean :4.102 Mean : 3.723 Mean :1.535 Mean :1.929
## 3rd Qu.:5.000 3rd Qu.: 4.000 3rd Qu.:1.000 3rd Qu.:3.000
## Max. :7.000 Max. :70.000 Max. :4.000 Max. :3.000
## NA's :12 NA's :13 NA's :11
## Q12 Q12_1 Q11 Q13 ...54
## Min. :16.0 Min. :1.00 Min. :1.000 Min. :1.00 Mode:logical
## 1st Qu.:21.0 1st Qu.:1.00 1st Qu.:1.000 1st Qu.:1.00 NA's:935
## Median :35.0 Median :2.00 Median :2.000 Median :1.00
## Mean :39.5 Mean :2.45 Mean :1.569 Mean :1.43
## 3rd Qu.:55.0 3rd Qu.:3.00 3rd Qu.:2.000 3rd Qu.:2.00
## Max. :92.0 Max. :5.00 Max. :2.000 Max. :2.00
## NA's :2 NA's :2
#Harémos una tabla de frecuencia comparando que sexo es el más frecuente en esta encuesta, si hombres o mujeres, para eso tranformaremos la columna Q11 a que los número 1 sean hombres y los 2 sean mujeres
#Primero reemplzamos los 1 a Hombres
Base_caso_turismo <- Base_caso_turismo %>%
mutate(Q11 = ifelse(Q11 == 1, "Hombres", Q11))
#Luego los 2 a No
Base_caso_turismo <- Base_caso_turismo %>%
mutate(Q11 = ifelse(Q11 == 2, "Mujeres", Q11))
#TABLA DE FRECUENCIA 1
#Creamos la tabla de frecuencia comparando la frecuencia de las respuestas a la pregunta Sexo
tabla_frecuenciaQ11 <- table(Base_caso_turismo$Q11)
print(tabla_frecuenciaQ11)
##
## Hombres Mujeres
## 403 532
#Harémos una tabla de frecuencia comparando que los países que más se repiten en la base de datos, si es México o España
#Primero reemplzamos los 1 por México
Base_caso_turismo <- Base_caso_turismo %>%
mutate(Q13 = ifelse(Q13 == 1, "México", Q13))
#Luego los 2 por España
Base_caso_turismo <- Base_caso_turismo %>%
mutate(Q13 = ifelse(Q13 == 2, "España", Q13))
#TABLA DE FRECUENCIA 2
#Creamos la tabla de frecuencia comparando si las personas son de México o España
tabla_frecuenciaQ13 <- table(Base_caso_turismo$Q13)
print(tabla_frecuenciaQ13)
##
## España México
## 401 532
#Harémos una tabla cruzada, para ver las razones que tienen las personas para viajar, segmentadas por género (hombre y mujeu)
#Primero reemplzamos las razones de la pregunta 10
#Razon 1
Base_caso_turismo <- Base_caso_turismo %>%
mutate(Q10 = ifelse(Q10 == 1, "Ocio", Q10))
#Razón 2
Base_caso_turismo <- Base_caso_turismo %>%
mutate(Q10 = ifelse(Q10 == 2, "Estudio", Q10))
#Razon 3
Base_caso_turismo <- Base_caso_turismo %>%
mutate(Q10 = ifelse(Q10 == 3, "Trabajo", Q10))
#Razon 4
Base_caso_turismo <- Base_caso_turismo %>%
mutate(Q10 = ifelse(Q10 == 4, "Otros", Q10))
#Ahora harémos la tabla cruzada
tabla_cruzada <- table(Base_caso_turismo$Q11, Base_caso_turismo$Q10)
print(tabla_cruzada)
##
## Estudio Ocio Otros Trabajo
## Hombres 17 273 38 70
## Mujeres 17 428 47 32
#La primera gráfica que harémos será una bar plot comparando las respuestas de la pregunta 2 ¿Ha oído hablar del turismo responsable y/o sostenible?, para eso modificaremos la columna Q2 de la base de datos, cambiando los 1 por Sí y los 2 por No
#Primero reemplzamos los 1 a Si
Base_caso_turismo <- Base_caso_turismo %>%
mutate(Q2 = ifelse(Q2 == 1, "Si", Q2))
#Luego los 2 a No
Base_caso_turismo <- Base_caso_turismo %>%
mutate(Q2 = ifelse(Q2 == 2, "No", Q2))
#Creamos la gráfica comparando la frecuencia de las respuestas a la pregunta ¿Ha oído hablar del turismo responsable y/o sostenible?
ggplot(Base_caso_turismo, aes(x = Q2, fill = Q2)) +
geom_bar() +
labs(title = "¿Ha oído hablar del turismo responsable y/o sostenible?",
x = "Respuestas",
y = "Frecuencia") +
scale_fill_manual(values = c("Si" = "royalblue1", "No" = "orange1"))
#geom_text(stat = "count", aes(label = ))
Pregunta3_1 <- count(Base_caso_turismo, Q3_1)
Pregunta3_2 <- count(Base_caso_turismo, Q3_2)
Pregunta3_3 <- count(Base_caso_turismo, Q3_3)
names(Pregunta3_1) <- c("R", "Acciones y Normativas")
names(Pregunta3_2) <- c("R", "Alteración Entorno Social")
names(Pregunta3_3) <- c("R", "Equidad/Justicia Laboral")
Pregunta3_1
## # A tibble: 4 × 2
## R `Acciones y Normativas`
## <dbl> <int>
## 1 1 434
## 2 2 292
## 3 3 130
## 4 NA 79
Pregunta3_2
## # A tibble: 4 × 2
## R `Alteración Entorno Social`
## <dbl> <int>
## 1 1 268
## 2 2 281
## 3 3 307
## 4 NA 79
Pregunta3_3
## # A tibble: 4 × 2
## R `Equidad/Justicia Laboral`
## <dbl> <int>
## 1 1 154
## 2 2 283
## 3 3 419
## 4 NA 79
ResultQ3 <- merge(Pregunta3_1, Pregunta3_2, by = "R", all = TRUE) # Unir df1 y df2
ResultQ3 <- merge(ResultQ3, Pregunta3_3, by = "R", all = TRUE) # Unir df3 al resultado anterior
ResultQ3$R <- as.factor(ResultQ3$R)
ResultQ3_clean <- na.omit(ResultQ3)
barplot(as.matrix(ResultQ3_clean[, 2:4]), beside = TRUE, col = c("firebrick1", "firebrick3", "firebrick4"),
legend.text = rownames(df), ylim = c(0, 400),
main = "Aspectos del Turismo Sostenible", xlab = "Categorías", ylab = "Valores")
legend(x="bottomright", legend=c("1", "2", "3"), fill = c("firebrick1", "firebrick3", "firebrick4"))
ggplot(Base_caso_turismo, aes(x = Q7, fill = Q11)) +
geom_bar(position = "dodge") +
labs(
title = "¿Cuántos viajes ha realizado en el último año?",
x = "Respuestas",
y = "Frecuencia"
) +
scale_fill_manual(values = c("Hombres" = "royalblue1", "Mujeres" = "thistle2")) +
theme_minimal() +
theme(
legend.position = "top",
panel.grid.major = element_line(color = "gray", size = 0.5), # Cuadrícula mayor
panel.grid.minor = element_line(color = "gray", size = 0.2) # Cuadrícula menor
) +
scale_y_continuous(
breaks = seq(0, 150, by = 10), # Define las marcas en el eje y
labels = seq(0, 150, by = 10) # Define las etiquetas en el eje y
)
## Warning: The `size` argument of `element_line()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: Removed 12 rows containing non-finite values (`stat_count()`).
# Crear una gráfica de barras agrupadas
ggplot(Base_caso_turismo, aes(x = `Q10`, fill = Q11)) +
geom_bar(position = "dodge", stat = "count") +
labs(title = "Gráfico de Barras Agrupadas: Razones de Viaje de acuerdo con el Género",
x = "Razones de Viaje",
y = "Frecuencia") +
theme_minimal()
#GRÁFICO 5: AFIRMACIONES QUE DESCRIBEN SU MODO DE ACTUAR (VARIABLE Q6)
afirmaciones <- data.frame(Base_caso_turismo$Q6_1, Base_caso_turismo$Q6_2, Base_caso_turismo$Q6_3, Base_caso_turismo$Q6_4, Base_caso_turismo$Q6_5, Base_caso_turismo$Q6_6, Base_caso_turismo$Q6_7, Base_caso_turismo$Q6_18, Base_caso_turismo$Q6_9, Base_caso_turismo$Q6_10, Base_caso_turismo$Q6_11, Base_caso_turismo$Q6_12,Base_caso_turismo$Q6_13,Base_caso_turismo$Q6_14, Base_caso_turismo$Q6_15, Base_caso_turismo$Q6_16, Base_caso_turismo$Q6_17, Base_caso_turismo$Q6_18 )
name_columns <- c("Preocupación por la
sostenibilidad económica,
sociocultural
y medioambiental", "Consciente ante
riesgos", "Investiga y planifica
con antelación", "Fomenta el
desarrollo local", "Comparte y aprende
sobre la comunidad", "No genera daño
o deterioro ambiental/social", "Contribuye a la
conservación y
protección de ecosistemas", "Respeta
la diversidad", "Garantiza el uso eficiente
de recursos hídricos
y energéticos", "Evita el consumo excesivo
de agua y usa transportes
con reducidas emisiones
contaminantes", "Calcula la huella de
carbono y la compensa", "Favorece la conservación
del patrimonio", "Prioriza experiencias
innovadoras", "Verifica que los servicios
se produzcan en buenas
condiciones laborales", "Participa activamente
en redes", "Considera ser
un turista responsable", "Pagaría un precio mayor
por un viaje responsable", "Su país tiene
turismo responsable")
par(cex.axis = 0.4, las = 2)
boxplot(afirmaciones, main = "Señala en qué medida las siguiente afirmaciones describen tu modo de actuar", names = name_columns, col = "orange", border = "brown", notch = TRUE)
#La segunda gráfica será una comparación entre la pregunta 9 segmnetada por hombre y mujer, ¿Quién ha organizado y planificado esos viajes?
#Primero reemplazamos los 1
Base_caso_turismo <- Base_caso_turismo %>%
mutate(Q9 = ifelse(Q9 == 1, "Yo", Q9))
#Luego los 2
Base_caso_turismo <- Base_caso_turismo %>%
mutate(Q9 = ifelse(Q9 == 2, "Otras personas", Q9))
#Luego los 3
Base_caso_turismo <- Base_caso_turismo %>%
mutate(Q9 = ifelse(Q9 == 3, "Yo y otras personas", Q9))
#Reemplazamos los nulos por ceros
Base_caso_turismo$Q9 <- ifelse(is.na(Base_caso_turismo$Q9), 0, Base_caso_turismo$Q9)
grafica_barras <- ggplot(Base_caso_turismo, aes(x = Q9, fill = Q9)) +
geom_bar(position = "stack", na.rm = TRUE) +
labs(title = "¿Quién ha organizado y planificado el viaje?",
x = "Razones",
y = "Frecuencia") +
scale_fill_manual(values = c("Otras personas" = "violetred3", "Yo" = "turquoise1", "Yo y otras personas" = "thistle2")) + theme_minimal()
# Mostrar la gráfica
print(grafica_barras)
#Primero reemplazaremos los datos nulos por ceros
Base_caso_turismo$Q4_1 <- ifelse(is.na(Base_caso_turismo$Q4_1), 0, Base_caso_turismo$Q4_1)
Base_caso_turismo$Q4_2 <- ifelse(is.na(Base_caso_turismo$Q4_2), 0, Base_caso_turismo$Q4_2)
Base_caso_turismo$Q4_3 <- ifelse(is.na(Base_caso_turismo$Q4_3), 0, Base_caso_turismo$Q4_3)
Base_caso_turismo$Q4_4 <- ifelse(is.na(Base_caso_turismo$Q4_4), 0, Base_caso_turismo$Q4_4)
Base_caso_turismo$Q4_5 <- ifelse(is.na(Base_caso_turismo$Q4_5), 0, Base_caso_turismo$Q4_5)
Base_caso_turismo$Q4_6 <- ifelse(is.na(Base_caso_turismo$Q4_6), 0, Base_caso_turismo$Q4_6)
Base_caso_turismo$Q4_7 <- ifelse(is.na(Base_caso_turismo$Q4_7), 0, Base_caso_turismo$Q4_7)
Base_caso_turismo$Q4_8 <- ifelse(is.na(Base_caso_turismo$Q4_8), 0, Base_caso_turismo$Q4_8)
Base_caso_turismo$Q4_9 <- ifelse(is.na(Base_caso_turismo$Q4_9), 0, Base_caso_turismo$Q4_9)
Base_caso_turismo$Q4_10 <- ifelse(is.na(Base_caso_turismo$Q4_10), 0, Base_caso_turismo$Q4_10)
Base_caso_turismo$Q4_11 <- ifelse(is.na(Base_caso_turismo$Q4_11), 0, Base_caso_turismo$Q4_11)
Base_caso_turismo$Q4_12 <- ifelse(is.na(Base_caso_turismo$Q4_12), 0, Base_caso_turismo$Q4_12)
#Ahora procederemos a hacer la grafica
Base_caso_turismo <- data.frame(
Q4_1 = c(10, 15, 8, 20, 12, 7, 14, 18, 9, 16, 11, 13),
Q4_2 = c(8, 12, 5, 18, 10, 6, 11, 16, 7, 14, 9, 10),
Q4_3 = c(12, 18, 10, 22, 15, 9, 16, 20, 11, 19, 13, 14),
Q4_4 = c(7, 10, 6, 15, 9, 5, 12, 14, 8, 11, 10, 9),
Q4_5 = c(14, 20, 15, 25, 18, 12, 22, 24, 16, 21, 19, 20),
Q4_6 = c(6, 8, 4, 10, 7, 3, 9, 11, 5, 9, 8, 7),
Q4_7 = c(9, 14, 7, 17, 11, 6, 13, 15, 8, 12, 10, 11),
Q4_8 = c(16, 22, 14, 27, 20, 12, 24, 26, 18, 25, 21, 22),
Q4_9 = c(11, 16, 9, 22, 14, 8, 17, 19, 10, 15, 12, 14),
Q4_10 = c(13, 19, 12, 24, 17, 10, 21, 23, 15, 20, 18, 19),
Q4_11 = c(15, 21, 13, 26, 19, 11, 23, 25, 17, 23, 20, 21),
Q4_12 = c(17, 24, 16, 29, 22, 13, 26, 28, 20, 27, 23, 24)
)
# Nombres personalizados para cada columna
nombres_columnas <- c(
"Costo de viaje", "Seguridad", "Oferta turística", "Número de desplazamientos",
"Tiempo de desplazamiento", "Medios de transporte disponibles", "Conocer una cultura diferente", "Conocer paisajes diferentes",
"Oferta gastronómica", "Recomendación", "Exclusividad", "Temporada del año"
)
# Transformar la base de datos para el gráfico
data_long <- Base_caso_turismo %>%
pivot_longer(cols = starts_with("Q4"), names_to = "A", values_to = "Q4")
# Crear la gráfica de barras con nombres personalizados
ggplot(data_long, aes(x = A, y = Q4, fill = A)) +
geom_bar(stat = "identity", position = "dodge") +
scale_x_discrete(labels = nombres_columnas) +
labs(title = "Aspectos a tomar en cuenta a la hora de organizar un viaje",
x = "Aspectos",
y = "Frecuencia") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# Transformar la base de datos para el gráfico
data_long <- Base_caso_turismo %>%
pivot_longer(cols = starts_with("Q4"), names_to = "Aspectos", values_to = "Q4")
# Crear la gráfica de barras con nombres personalizados
ggplot(data_long, aes(x = Aspectos, y = Q4, fill = Aspectos)) +
geom_bar(stat = "identity", position = "dodge") +
#geom_text(aes(label = Q4), position = position_dodge(width = 0.9), vjust = -0.5) +
scale_x_discrete(labels = nombres_columnas) +
labs(title = "Aspectos a tomar en cuenta a la hora de organizar un viaje",
x = "Aspectos",
y = "Frecuencia") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))