###############################################
### CERTIFICACIÓN UNIVERSITARIA EN DATA SCIENCE
### PROGRAMACIÓN PARA LA CIENCIA DE DATOS I
## 2023 ##
###############################################
## Myrian Aguilar, 26 de Julio de 2023 ##
####################################################
### Borrar los datos de entorno cargados en memoria
####################################################
rm(list=ls()) # Borrar los datos de entorno cargados en memoria
# script, comentarios, asignacion ----
# Un script es un archivo que contiene un listado secuencial de lineas de codigo
# Todo lo escrito luego de un # es entendido como un comentario y no será tenido
# en cuenta cuando se ejecute el código.
# La combinación del signo menor con el guión medio ( <- ) es llamado el símbolo de
asignación
# asignando directorio----
# aqui debes indica TU de directorio de trabajo
setwt()
setwd("C:/ARRAYANES/MUNDO_E") # cambiar a su directorio personal
setwd("C:/ARRAYANES/MUNDO_E")
getwd() # verifico cual es el directorio de trabajo. Lo veo en la consola
# R como calculadora: operadores aritmeticos-----------
5 + 2
2 / 3
5 ^ 2
((10-3)*(4 + 8)) ^ 3
# OPERADORES RELACIONALES--------
# Los operadores relacionales son simbolos mediante los cuales podemos realizar
operaciones.
# Como resultado obtenemos objetos de clase logical, que pueden adoptar los valores
TRUE o FALSE
8 > 1 # TRUE (8 es mayor que 1?)
3 < 2 # FALSE (3 es menor que 2?)
3 == 2 # FALSE (3 es igual a 2?)
7 == 7 # TRUE (7 es igual a 7?)
5 != 5 # FALSE (5 es distinto de 5?)
# OPERADORES LOGICOS---------
x <- 10:15 # un vector
x
y <- 16:11
y
yyy<-16:10
m <- 234
x == y # Compara dos vectores, es decir, cada elemento de 'x' con el de 'y'
variable1 <- x < 13 # buscar todos los valores dentro del vector x que sean menores
a 13
variable1
variable2 <- x < 14 # buscar todos los valores dentro del vector x que sean menores
a 13
variable2
condicion <-x <= 13 # buscar todos los valores dentro del vector x que sean
menores a 13
condicion
# TIPS para nombrar objetos-------
# Se pueden usar combinaciones de letras, numeros y algunos
# simbolos, como el punto . , el guion medio - y el guion bajo _ .
# Los nombres no pueden comenzar con un numero.
# R distingue minisculas de mayusculas. Por ejemplo: Casa y casa pueden ser 2
variables distintas
# R tiene una lista de nombres y simbolos reservados que no pueden utilizarse
# para crear nuevos objetos. Por ejemplo: "function", "if", !
# clase de objetos-------
dato1 <- 24 # al objeto llamado numero le asigno el valor 24
dato1 # lo llamo, es decir verifico, le pido que me lo muestre
datos2 <- dato1 * m # puedo hacer calculos con operadores arirmeticos
datos2
datos3 <- dato1 * 234
datos3
### Clase de Objetos: VECTORES------------
# conjunto de valores (numeros o simbolos), todos del mismo tipo
vector_1 <- c(2, 5, 6, 7)
vector_1
vector_1 * 2
vector_2 <- c("Ana P","Lucas J", "Pablo E")
vector_2
vector_2[3] #nos devuelve el objeto en el lugar 1 del vector
alumnos <-vector_2[3]
alumnos
# funciones-----
class(vector_1) # funcion class() me dice la clase de atributo del objeto
class(vector_2)
x <- seq( from = 1, to = 8, by = 2) # funcion seq(), secuencia de numeros
x
x <- seq( from = 1, to = 8)
x
y <- seq( from = 1, to = 6, length = 4) # lenght divide el intervalo en segmentos
iguales
y
yy <- seq( from = 1, to = 6, length = 3)
yy
z <- rep("casa", time=4) # rep() crea un vector repitiendo el numero o caracter
z
### Clase de objeto: LISTA---------------
# Lista: coleccion ordenada de otros objetos, llamados componentes de la lista
milista <- list(numeros = 1:5,
ciudades = c("Buenos Aires", "Rosario", "Neuquen"))
milista
familia <- list(padre = "Juan",
madre = "Maria",
numero.hijos = 3,
nombre.hijos = c("Luis", "Carlos", "Paola"),
edades.hijos = c(7, 5, 3),
ciudad = "La Plata")
familia
names(familia) # obtengo vector con nombre de los componentes
familia$ciudad
familia$nombre.hijos
### Clase de Objeto: DATA FRAME--------
# grupo de vectores ordenados en forma tabular, donde cada vector conforma una
columna del dataframe
# creacion de un DF
# creamos 4 vectores con 4 valores cada uno
id <- 1:4
edad <- c(23, 43, 12, 65)
sexo <- c("M", "F", "F", "M")
trabaja <- c(T, T, F, F)
trabaja
datos <- data.frame(id, edad, sexo, trabaja)
datos
class(datos) # verifico la clase de objeto
str(datos) # miro estructura del conjunto de datos
datos$sexo # selecciono la variable sexo del DF
# se trata de un factor, veremos aparecer sus niveles.
datos[1,2] # indexamos, [FILAS,COLUMNAS]
# combinacion de Dataframe---------
id <- 5:9
edad <- c(37, 45, 52, 25, 32)
sexo <- c("F", "F", "F", "M", "M")
trabaja <- c(T, F, T, F, F)
datos_nuevos <- data.frame( id, edad, sexo, trabaja)
datos_nuevos
datos_todos <- rbind(datos, datos_nuevos) # union de los dos Df
datos_todos # verifico
View(datos_nuevos)
# agregar columna a DF--------
estudia <- c(T, F, T, F, F, T, T, F, NA) # creo la nueva variable
datos_estudia <- cbind(datos_todos, estudia) # union del Df y la nueva variable
head(datos_estudia) # miro ( encabezado) los primeros valores
datos_todos <- cbind(datos_todos, estudia)
#install.packages("tidyverse")
library(tidyverse)
### Clase de objeto: MATRIZ---------------
# es un vector bidimensional, que se visualiza como una tabla conformada por
# columnas y filas ordenadas y donde todos los elementos son del mismo tipo
matrix(1:6) # creo una matriz
matrix(1:6, nrow = 3) # si especifico numero de filas la secuencia 1:6 se acomodan
por columnas
matrix( 1:6, nrow = 2, byrow = TRUE) # con byrow = TRUE, lee por filas
#data: datos que forman la matriz
#nrow: numero de filas
#ncol: numero de columnas
#byrow: Los datos se colocan por filas o por columnas según se van
#leyendo. Por defecto se colocan por columnas.
# Indexacion en matrices-------
# Seleccionar los elementos de una matriz, podemos hacerlo introduciendo el número
# de fila y columna entre [ ].
x <- matrix( 1:6, nrow = 3) # Creamos una matriz 2 x 3
x
x[1,2] #Se muestra el elemento de fila 1 columna 2
# Asignar nombres a filas y columnas-------
datos <- matrix(c(20, 65, 174, 22, 70, 180, 19, 68, 170),
nrow = 3, byrow = T) #Se crea una matrix 3x3
datos
colnames(datos) <- c("edad","peso","altura") # nombres a columna
datos # verifico
rownames(datos) <- c("paco","pepe","kiko") # nombres a filas
datos # verifico
######################
### Fin del Script ###
######################