#01 Pregunta. # Función para calcular el área de una circunferencia

calcular_area <- function(radio) {
  # Validar que el radio sea un número positivo
  if (radio <= 0) {
    stop("El radio debe ser un número positivo mayor que cero.")
  }
  
  # Fórmula del área: A = π * r^2
  area <- pi * radio^2
  return(area)
}

# Función para calcular el perímetro de una circunferencia
calcular_perimetro <- function(radio) {
  # Validar que el radio sea un número positivo
  if (radio <= 0) {
    stop("El radio debe ser un número positivo mayor que cero.")
  }
  
  # Fórmula del perímetro: P = 2 * π * r
  perimetro <- 2 * pi * radio
  return(perimetro)
}

# Ejemplo de uso
radio <- 5  # Puedes cambiar este valor para probar con otros radios

area <- calcular_area(radio)
perimetro <- calcular_perimetro(radio)

cat("Radio:", radio, "\n")
## Radio: 5
cat("Área de la circunferencia:", round(area, 2), "\n")
## Área de la circunferencia: 78.54
cat("Perímetro de la circunferencia:", round(perimetro, 2), "\n")
## Perímetro de la circunferencia: 31.42

#02 Pregunta

Sexo <- c("Mujer"   ,   "Mujer" ,   "Mujer" ,   "Mujer" ,   "Mujer" ,   "Varon" ,   "Mujer" ,   "Mujer" ,   "Mujer" ,   "Varon" ,   "Varon" ,   "Varon" ,   "Varon" ,   "Varon" ,   "Varon" ,   "Mujer" ,   "Varon")
Edad <- c(  52  ,   39  ,   34  ,   44  ,   39  ,   34  ,   25  ,   50  ,   29  ,   34  ,   34  ,   42  ,   55  ,   43  ,   24  ,   38  ,   48  )
Peso<- c(   64  ,   57  ,   58  ,   51  ,   59  ,   66  ,   65  ,   51  ,   60  ,   67  ,   61  ,   85  ,   64  ,   64  ,   70  ,   58  ,   63  )
Estatura<- c(   1.71    ,   1.53    ,   1.66    ,   1.58    ,   1.66    ,   1.63    ,   1.67    ,   1.51    ,   1.68    ,   1.74    ,   1.66    ,   1.84    ,   1.57    ,   1.68    ,   1.78    ,   1.5 ,   1.71    )
Ciudad<-c("Trujillo",   "Chiclayo", "Chiclayo", "Lima", "Chiclayo", "Chiclayo", "Chiclayo", "Trujillo", "Lima", "Trujillo", "Trujillo", "Trujillo", "Chiclayo", "Trujillo", "Trujillo", "Arequipa", "Arequipa")

#2.1 Crea un dataframe con todas las variables presente el script y una Visualización en R-Studio de las 5 variables consolidadas (Sexo, Edad, Peso, Estatura y Ciudad)

datos <- data.frame(Sexo, Edad, Peso, Estatura, Ciudad)

#2.2 Presenta el script y salida de las dimensiones (n° de filas y n° de columnas) del dataframe las variables 5 consolidadas

fix(datos)
head(datos)
View(datos)
str(datos)
## 'data.frame':    17 obs. of  5 variables:
##  $ Sexo    : chr  "Mujer" "Mujer" "Mujer" "Mujer" ...
##  $ Edad    : num  52 39 34 44 39 34 25 50 29 34 ...
##  $ Peso    : num  64 57 58 51 59 66 65 51 60 67 ...
##  $ Estatura: num  1.71 1.53 1.66 1.58 1.66 1.63 1.67 1.51 1.68 1.74 ...
##  $ Ciudad  : chr  "Trujillo" "Chiclayo" "Chiclayo" "Lima" ...

#2.3 Haga un gráfico de pie con la variable sexo, presente el script y la salida del gráfico en R-Studio.

gráfico01 <- table(datos$Sexo)
pie(gráfico01)

#2.4 Haga un gráfico de Histograma con la variable Edad, presente el script y la salida del gráfico en R-Studio

hist(datos$Edad, col=blues9)

#2.5 Elabore un diagrama de caja o boxplot con la variable Edad por Sexo, presente el script y la salida del gráfico en R-Studi

boxplot(Edad~Sexo, col="green") 

#3 Crea un segundo dataframe con estas 3 variables consolidando (Peso, Edad y Estatura).

plot(datos$Peso,datos$Edad, main = "Diagrama de Dispersión", 
     xlab = "Variable Peso", ylab = "Variable Edad", 
     col = "blue", pch = 16)

plot(datos$Peso,datos$Estatura, main = "Diagrama de Dispersión", 
     xlab = "Variable Peso", ylab = "Variable Estatura", 
     col = "blue", pch = 16)

plot(datos$Edad,datos$Estatura, main = "Diagrama de Dispersión", 
     xlab = "Variable Edad", ylab = "Variable Estatura", 
     col = "blue", pch = 16)

#3.2 Haga una nube de puntos tridimensional con el orden de estas variables (Peso~Edad*Estatura), presente el script y la salida del gráfico en R-Studio

# Instalar y cargar la librería
#install.packages("plotly")  # Solo si no está instalada
library(plotly)
## Warning: package 'plotly' was built under R version 4.4.3
## Cargando paquete requerido: ggplot2
## 
## Adjuntando el paquete: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
# Crear el gráfico 3D interactivo
plot_ly(x = Edad, y = Estatura, z = Peso, 
        type = "scatter3d", mode = "markers",
        marker = list(size = 5, color = "red")) %>%
  layout(title = "Nube de Puntos 3D Interactiva",
         scene = list(xaxis = list(title = "Edad (años)"),
                      yaxis = list(title = "Estatura (m)"),
                      zaxis = list(title = "Peso (kg)")))

#3.3 Estime y presente un vector de medias con las variables (Peso, Edad y Estatura), presente el script y la salida de la consola en R-Studio.

datos02 <- data.frame(Peso, Edad, Estatura)
vector_medias <- colMeans(datos02)
print(vector_medias)
##      Peso      Edad  Estatura 
## 62.529412 39.058824  1.653529

#3.4 Estime y presente una matriz de varianzas y covarianzas con las variables (Peso, Edad y Estatura), presente el script y la salida de la consola en R-Studio.

sigma<-(sqrt(var(datos02)))
## Warning in sqrt(var(datos02)): Se han producido NaNs
sigma
##               Peso     Edad   Estatura
## Peso     7.7630346      NaN 0.76068371
## Edad           NaN 9.010207        NaN
## Estatura 0.7606837      NaN 0.09313573

#3.5 Estime y presente una matriz de correlaciones con las variables (Peso, Edad y Estatura), presente el script y la salida de la consola en R-Studi

correlacion=cbind(Peso,Edad,Estatura)

cor(correlacion,method="pearson")
##                Peso       Edad   Estatura
## Peso      1.0000000 -0.1702456  0.8003139
## Edad     -0.1702456  1.0000000 -0.2974307
## Estatura  0.8003139 -0.2974307  1.0000000