Está en la página 1de 7

#------------------------------------------------------------------------------------------------------------#

#------------------------------------------------------------------------------------------------------------#
#------------------------------------ CLASE N°2 -- INTRODUCCIÓN A RSTUDIO -----------------------------------#
#------------------------------------------------------------------------------------------------------------#
#------------------------------------------------------------------------------------------------------------#

#-------------------------------------------CAPITULO 0: ESTRUCTURAS DE CONTROL-------------------------------


-

#PARA INSTALAR UN PAQUETE EN PARTICULAR SE DEBE UTILIZAR EL COMANDO

# install.packages('nombre de la librería')
install.packages('ggplot2')
install.packages('sas7bdat')
install.packages('RODBC')

#PARA UTILIZAR O CARGA LA LIBRERIA EN EL ENTORNO, SE DEBE UTILIZAR EL COMANDO


#library('nombre de la librería')

library('ggplot2')
library('sas7bdat') #librería para leer información en formato SAS
library('readxl') #librería para leer información en formato excel
library('RODBC') #librería para generar conexión con BBDD SQL

#Este es nuestro primer script

#-------------------------------------------CAPITULO 1: OBJETOS-----------------------------------------------

print("HOLA MUNDO")

#EXISTEN 5 CLASES BÁSICAS DE OBJETOS EN R:

#1. Cáracter
#2. Numérico (números Reales)
#Ejemplo Básico
1+1
20-10
2*8
15/3

#3. Entero
#4. Complejo
#5. Lógico (True/False)

#EJEMPLOS (la letra 'c' proviene de concatenar!)

#Asignación de variables

x<-1000
x=2000

a<-c('SANTIAGO',"LOS ANGELES","X CIUDAD") #CARACTER


#--------------------------------------------------
b<-c(1.4,3.333) #NUMERICO REAL
#--------------------------------------------------
e<-c(2,1,3.4) #ENTERO (?)

file:///C/...SAN%20SEBASTIAN%202021/AL%20DRIVE/ICOA_F001/U1/C2/Recursos_del_docente/02._Introduccion_RStudio.txt[06/01/2021 11:21:25 p. m.]


#QUE FUE LO QUE PASO?

#AHORA SI...

e<-c(2,1,3) #ENTERO
#--------------------------------------------------
d=c(1 + 2i, 3 - 6i) #COMPLEJO
#--------------------------------------------------
e<- vector('logical',length=4) #LOGICO
#--------------------------------------------------

#OPERADORES COMPARATIVOS
# OPERADOR SIGNIFICADO
#> mayor que
#< menor que
# >= mayor o igual que
# <= menor o igual que
# == igual que (NO CONFUNDIR CON '='); SE UTILIZA COMO COMPARACION LOGICA ENTRE 2
OBJETOS
# != distinto que

#OPERADORES LOGICOS
# Corresponden a 'y' 'o' 'no' 'exclusivo'

# OPERADOR SIGNIFICADO
# & Y
# | O
# ! NO
# xor(x,y) EXCLUSIVAMENTE UNO Y NO EL OTRO

#FUNCIONES MATEMATICAS

exp(5)
log(5,base=10)
log10(5)
sqrt(9)
abs(-5)
ceiling(5.8)
floor(5.8)

#-------------------------------------------CAPITULO 2: ESTRUCTURAS DE CONTROL-------------------------------


-

#BUCLES (FOR, IF)

#--------------------------------------------------FOR--------------------------------------------------------

#for (variable_iteracion in secuencia/vector) {


#GENERAR ACCIONES
#}

for (i in c('PEDRO','JUAN','DIEGO','ANDREA','DANIELA')) {
print(paste('Mi nombre es',i))
}

for (i in 1:10) {
print(i)
}

#--------------------------------------------------IF---------------------------------------------------------

file:///C/...SAN%20SEBASTIAN%202021/AL%20DRIVE/ICOA_F001/U1/C2/Recursos_del_docente/02._Introduccion_RStudio.txt[06/01/2021 11:21:25 p. m.]


#if (se evalúan condiciones, en caso de ser verdadera...) {
# SE GENERA UNA ACCION!

#} else if (se evalua siguiente condición, si la primera fue falso, en caso de ser esta verdadera..) {
# SE GENERA OTRA ACCION!

#}

x=-5
if (x>3) { #TENGAN CUIDADO! SIEMPRE SE DEBE CERRAR ENTRE PARÉNTESIS
LA CONDICION A EVALUAR
print('SE GENERA LA PRIMERA ACCION --- x es mayor a 3')

} else if (x==3) {
print('SE GENERA LA SEGUNDA ACCION --- x es igual a 3')

} else if (x<3 & x>=0) {


print('SE GENERA LA TERCERA ACCION --- x es mayor a 0 y menor a 3')

} else if (x<0) {
print('SE GENERA LA CUARTA ACCION.....x es menor a 0')
}

#--------------------------------------------------WHILE------------------------------------------------------

#while (se evalua condición, si es verdadera..) {


# EJECUTAR ACCION!

#}

x=2

while (x<6) {
print(x)
x=x+1
}

#-------------------------------------------CAPITULO 3: DATA TYPES--------------------------------------------

#--------------------------------------------------BREVE------------------------------------------------------
#--------------------------------------------------REPASO-----------------------------------------------------
#--------------------------------------------------DE---------------------------------------------------------
#--------------------------------------------------VECTORES---------------------------------------------------
#--------------------------------------------------LISTAS-----------------------------------------------------
#--------------------------------------------------MATRICES---------------------------------------------------
#--------------------------------------------------ARREGLOS---------------------------------------------------
#--------------------------------------------------DATAFRAMES-------------------------------------------------

#//////////////////////////////////////////////////VECTOR/////////////////////////////////////////////////////

#El vector contiene sólo objetos de la misma clase; el vector siempre será
#de 1 dimensión (1D). Entiéndase en este caso que c(5,20,33) contiene:
#elemento 1: 5 ; numérico
#elemento 2: 20 ; numérico
#elemento 3: 33 ; numérico

#En el caso que se mezclen distintos tipos de elementos en un solo vector, este realiza una
transformación
#para que todos los elementos del vector sean de la misma clase

a<- c(23,23.1,T,'hola')

file:///C/...SAN%20SEBASTIAN%202021/AL%20DRIVE/ICOA_F001/U1/C2/Recursos_del_docente/02._Introduccion_RStudio.txt[06/01/2021 11:21:25 p. m.]


#Es posible notar que los valores numéricos y lógico han sido transformados a caracter!

a<- c(T,12)

#En este caso el valor lógico T ha sido modificado a numérico entero, es decir, con valor 1

#Podemos chequear cual es la CLASE de objeto del vector


class(a)

#Un método muy útil es 'as.' que permite cambiar el tipo de objeto del vector

g<- 0:10 # esto genera un vector de tipo Integer

class(g) #chequeamos el tipo de objeto

g=as.numeric(g) # transforma el vector a numérico real

as.character(g) # transforma el vector a caracter

#PRECAUCION! : Se debe tener cuidado al utilizar el comando 'as.', ya que el cambio de un vector de
tipo caracter
#a numérico, puede generar valores nulos

#//////////////////////////////////////////////////LIST////////////////////////////////////////////////////////

#La lista puede contener elementos que no pertenezan a la misma clase. En este caso no se genera una
transformación de
#los elementos
lista<- list('22',22,T,1+2i)
lista[[2]]
lista[2] #esta forma de consultar entre también el index

#Entonces...
lista[2]*2 #NO ES POSIBLE REALIZAR LA OPERACION POR EL INDEX!
lista[[2]]*2 #AHORA SI!

#//////////////////////////////////////////////////MATRIX///////////////////////////////////////////////////////

#Las matrices corresponden a clases de objetos de 2D, asociados a 'filas' y 'columnas'.


#Todos los elementos de la matriz deben ser de la misma clase
#a<- matrix(datos, nrow= # de filas, ncol= #de columnas, dimnames= vector de nombres para
columnas y filas)
matriz<- matrix(1:6, nrow = 3,ncol= 2)

matriz<- matrix(cbind(c(1,2,3),c(4,5,6)), nrow = 3, ncol = 2) #EN ESTE CASO UTILIZAMOS COMANDO


cbind
#QUE NOS PERMITE UNIR DOS VECTORES COLUMNAS

a=dim(matriz) #este comando permite obtener las dimensiones de la matriz (número de filas, número
de columnas)

dim(matriz)[1] #número escalar de filas

dim(matriz)[2] #número escalar de columnas

#SI QUEREMOS CAMBIAR LAS ETIQUETAS DE FILAS Y COLUMNAS

dimnames(matriz)<-list(c("paco","pepe","kiko"), # Aqui esta el cambio


c("edad","peso"))

file:///C/...SAN%20SEBASTIAN%202021/AL%20DRIVE/ICOA_F001/U1/C2/Recursos_del_docente/02._Introduccion_RStudio.txt[06/01/2021 11:21:25 p. m.]


matriz[,2]
matriz[,"peso"]

#//////////////////////////////////////////////////ARRAY///////////////////////////////////////////////////////

#Corresponden a la clase de objeto que genera objetos que pueden ser de 1D, 2D, 3D, 4D, etc.
Corresponden a objetos multidimensionales

arreglo_cubo<-array(0,dim=c(10,5,6))
arreglo_cubo[1,1,3] #[fila,columna,capa]

#//////////////////////////////////////////////////DATAFRAME///////////////////////////////////////////////////

#Este corresponde al tipo de datos más utilizados, corresponde a una clase de objeto 2D. Se diferencia
del tipo de datos Matriz,
#ya que establece que elementos pueden ser de distinta clase. Esto se acerca más a la realidad respecto
a la información
#que usualmente utilizamos (tablas con información de estado civil, edad, etc)

#Se crea dataframe con 2 vectores


dataframe<- data.frame(nombre=c("Claudio","Pedro","Ramiro","Italo"), edad=c(20,23,28,70))

#Se revisa dimension del df


dim(dataframe)
nrow(dataframe)
ncol(dataframe)

#Se revisa información general de df


str(dataframe)

#Revisión de tipos de datos en dataframe


sapply(dataframe, class)

#Podemos observar que existen 2 tipos de datos, factor y numerica. Factor corresponde a un tipo de
#dato string, el cual R logra codificar automáticamente en dummy (para efectos de agrupar en
estadística descriptiva o modelamiento
#estadístico)

#¿Cómo se visualizan valores NaN?

dataframe[1:2,2]<- NA #Se genera valores NaN sobre la columna 2 (Campo Edad), filas 1 y 2
is.na(dataframe)
dataframe[complete.cases(dataframe),] #se seleccionan las filas contienen información
dataframe[!complete.cases(dataframe),] #version negativo, es decir, se seleccionan las filas con algún
valor nulo

#ES IMPORTANTE COMPRENDER QUE EL HECHO DE TENER VALORES NULOS EN COLUMNAS, PUEDE
IMPLICAR QUE ALGUNOS CÁLCULOs,
#POR EJEMPLO, ESTADISTICA DESCRIPTIVA, RETORNE UN VALOR NAN

mean(dataframe$edad)

mean(dataframe$edad, na.rm = T)

#Para eliminar valores nulos de un df, se debe ejecutar:

dataframe2<- na.omit(dataframe)

#renombramos index
rownames(dataframe2) <- 1:nrow(dataframe2)

file:///C/...SAN%20SEBASTIAN%202021/AL%20DRIVE/ICOA_F001/U1/C2/Recursos_del_docente/02._Introduccion_RStudio.txt[06/01/2021 11:21:25 p. m.]


#OPERACIONES GENERALES SOBRE DATAFRAME

#Vista de primeros valores


head(dataframe)

#Seleccionando X filas y columnas

dataframe[1:2,c('nombre')] # dataframe[filas a considerar, vector de columnas a considerar]

#Seleccionando subsección de data cuando cumple condición

#df[df$nombre_columna + con alguna condición,] esto permite extraer TODAS las columnas de las filas
que cumplan
#dicha condición

dataframe[dataframe$nombre=='Italo',]
dataframe[dataframe$edad>29,]

#Cambiando nombre de las columnas


cabeceras <- c("Hola", "Mundo")
colnames(dataframe) <- cabeceras

#--------------------------------------------------LECTURA-----------------------------------------------------------
#--------------------------------------------------DE----------------------------------------------------------------
#--------------------------------------------------CSV---------------------------------------------------------------

df<- read.csv('C:\\Usuario\\user1\\Documents\\CURSO_INTRODUCCION_R\\Tablas\\Historical Product


Demand.csv')

#--------------------------------------------------LECTURA-----------------------------------------------------------
#--------------------------------------------------DE----------------------------------------------------------------
#--------------------------------------------------SAS7BDAT----------------------------------------------------------

df<-
read.sas7bdat('C:\\Usuario\\user1\\Documents\\CURSO_INTRODUCCION_R\\Tablas\\baseball.sas7bdat')

#--------------------------------------------------LECTURA-----------------------------------------------------------
#--------------------------------------------------DE----------------------------------------------------------------
#--------------------------------------------------EXCEL-------------------------------------------------------------

df<- read_excel(file_choose())
df<- read_excel('C:\\Usuario\\user1Documents\\CURSO_INTRODUCCION_R\\Tablas\\Sample -
Superstore.xls')

#--------------------------------------------------LECTURA-----------------------------------------------------------
#--------------------------------------------------DE----------------------------------------------------------------
#--------------------------------------------------BBDD SQL----------------------------------------------------------

library(RODBC)
dbhandle <- odbcDriverConnect('driver={SQL Server};server=DIRECCION DE
SERVIDOR;database=Nombre_BBDD;trusted_connection=true')

#Cabe mencionar que en este caso se ha generado una conexión mediante el usuario (usuario: #usuario
, password= XXXXXXXXX)

res <- sqlQuery(dbhandle, 'SELECT TOP 100 * from tabla_de_BBDD')

odbcClose(channel) #Con este comando se cierra la conexión con la BBDD

file:///C/...SAN%20SEBASTIAN%202021/AL%20DRIVE/ICOA_F001/U1/C2/Recursos_del_docente/02._Introduccion_RStudio.txt[06/01/2021 11:21:25 p. m.]


#--------------------------------------------------FIN!!!-----------------------------------------------------------
#-------------------------------------------------------------------------------------------------------------------
#-------------------------------------------------------------------------------------------------------------------

file:///C/...SAN%20SEBASTIAN%202021/AL%20DRIVE/ICOA_F001/U1/C2/Recursos_del_docente/02._Introduccion_RStudio.txt[06/01/2021 11:21:25 p. m.]

También podría gustarte