Comentario: RStudio es una aplicación de programación extremadamente poderosa y popular utilizada en el mundo de la ciencia de datos y la estadística. Esta plataforma está diseñada específicamente para trabajar con el lenguaje de programación R, que es ampliamente utilizada en análisis de datos, estadísticas y visualización de datos.
# R no entiende idiomas; cualquier idioma lo expresa como un error
# Guardando Objetos-
mango<-15
mango<-23
# R asigna valores numericos a cualquier palabra que deseemos
mango<-
1000
# R realiza sumas entre numeros y palabras; las cuales tiene asignado un valor numerico
15 + 2
## [1] 17
# R puede sumar una una palabra (asignado un valor numerico) con un valor numerico
mango + 2
## [1] 1002
# R realiza operaciones matematicas
2 + 2 # Sumas
## [1] 4
3 - 1 # Restar
## [1] 2
4*5 # Multiplicar
## [1] 20
12 / 3 # Dividir
## [1] 4
7 ^ 2 # operaciones al cuadrado
## [1] 49
0:25 # Realiza series
## [1] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
## [26] 25
3 == 5 # es igual?
## [1] FALSE
5 != 0 # es distino?
## [1] TRUE
2 > 9 # Mayor que
## [1] FALSE
1 < 8 # Menor que
## [1] TRUE
5 >= 5 # Mayor o igual que
## [1] TRUE
4 <= 1 # Meno o igual que
## [1] FALSE
mango < -1
## [1] FALSE
mi_segundo_objeto <- 160
nome <-"usp"
nome_1 <- "usp" # comillas PARA TODOS LOS VALORES TEXTUALES
# (CARACTERES)
nome_1
## [1] "usp"
nome_2 <- 'usp'
nome_2
## [1] "usp"
nome_1 == nome_2
## [1] TRUE
nome_1 != nome_2
## [1] FALSE
verdadero <- nome_1 == nome_2
# Este es un Objeto logico
verdadero
## [1] TRUE
falso <- nome_1 != nome_2
falso
## [1] FALSE
# Otros valores importantes:
# Valor logico: valor verdadero
TRUE #logical
## [1] TRUE
T #logical
## [1] TRUE
FALSE #logical
## [1] FALSE
F #logical
## [1] FALSE
NA #logical ES DISTINO DE CERO!!!!!!
## [1] NA
# Ademas R anula valores que no deseemos
NULL #NULL
## NULL
Inf #numeric
## [1] Inf
-Inf #numeric
## [1] -Inf
# Funcion concatenate: c()
#Para crear vectores es necesario utilizar la funcion de concatenar c()
vetor <-
c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
vector
## function (mode = "logical", length = 0L)
## .Internal(vector(mode, length))
## <bytecode: 0x000001c85a5eb518>
## <environment: namespace:base>
# valores textuales
# Para saber si esta bien el trabajo primero debo guardar el vector, luego debo llamarlo
nomes <- c("mariana", "pedro", "daniela")
nomes
## [1] "mariana" "pedro" "daniela"
# Todas las funciones las podemos adactar de acuerdo a las nececidades de trabajo que deseeemos
round(
x = 3.141592)
## [1] 3
round(x = 3.141592, digits = 2)
## [1] 3.14
# argumentos ?
# ?; Nos abre un manual de ayuda en el trabajo, para saber como se puede interpretar un comando
# o as?:
args(round)
## function (x, digits = 0)
## NULL
round
## function (x, digits = 0) .Primitive("round")
# R asigna caracteres a palabras o puede asignar caracteres a valores numericos para poder dar una mejor interpretacion
nomes_e_idades <- c("mariana", 22, "pedro", 30, "daniela", 45)
nomes_e_idades
## [1] "mariana" "22" "pedro" "30" "daniela" "45"
# R me realiza una descripcion de como es mi caracter, sea tipo numerico o logico
# De nuevo:
class(nomes_e_idades)
## [1] "character"
# Jerarquia: textuales > valores numericos > valores logicos.
# R realiza una comparacion de todos los valores que tengamos y los clasifica segun la herarquia
teste <- c("laranja", 230, FALSE)
class(teste)
## [1] "character"
outro_teste <- c(12, 37, FALSE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE)
outro_teste
## [1] 12 37 0 1 0 1 1 1 1
class(outro_teste)
## [1] "numeric"
missings <- c(12, 37, FALSE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, NA)
missings
## [1] 12 37 0 1 0 1 1 1 1 NA
class(missings)
## [1] "numeric"
# R identifica que tipo de es, caracter, numerici, logico
# Variables categoricas ---------------------------------------------------
tipo_sanguineo <- c(
"A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-")
# R transforma valores de caracter en factor; es decir tiene niveles
tipo_sanguineo
## [1] "A+" "A-" "B+" "B-" "AB+" "AB-" "O+" "O-"
class(tipo_sanguineo)
## [1] "character"
# Transformación:
tipo_sanguineo <- factor(tipo_sanguineo)
tipo_sanguineo
## [1] A+ A- B+ B- AB+ AB- O+ O-
## Levels: A- A+ AB- AB+ B- B+ O- O+
class(tipo_sanguineo)
## [1] "factor"
# Para a utilizacion de dos valores declarados em técnicas direcionadas a
# variábles nominales, este procedimento basta que está completo.
# Para el caso de variables ordinales, deve ser estendido. Vamos a crear un objeto con nuevas categorias:
nivel_escolarizacao <- c("fundamental", "medio", "pregrado")
nivel_escolarizacao
## [1] "fundamental" "medio" "pregrado"
class(nivel_escolarizacao)
## [1] "character"
# Funcion factor():
nivel_escolarizacao <- factor(nivel_escolarizacao)
class(nivel_escolarizacao)
## [1] "factor"
nivel_escolarizacao
## [1] fundamental medio pregrado
## Levels: fundamental medio pregrado
# Niveles, factor():
nivel_escolarizacao <- factor(nivel_escolarizacao,
levels = c("medio",
"fundamental","pregrado"))
# Bases de datos ------------------------------
empresas <- c("Empresa A", NA, "Empresa C", "Empresa D", "Empresa E")
funcionarios <- c(100, 5000, 230, 12000, 1700)
presenca_bolsa <- c(F,T,NA,T,TRUE)
sede_brasil <- c(NA,0,1,0,0)
diretor_executivo <- c(NA,"daniel","carlos","carla","solange")
#iguales
length(empresas)
## [1] 5
length(funcionarios)
## [1] 5
length(presenca_bolsa)
## [1] 5
length(sede_brasil)
## [1] 5
length(diretor_executivo)
## [1] 5
# para sacar una tabla utilizo Data.frame.
dados <- data.frame(empresas, funcionarios, presenca_bolsa,
sede_brasil, diretor_executivo)
#datos
# comando para oberservar las tablas que creeemos con data frame
View(dados)
#con nombres
dados <- data.frame(jose = empresas,
employees = funcionarios,
stock_exchange = presenca_bolsa,
brazil_hq = sede_brasil,
ceo = diretor_executivo)
View(dados)
# Bases de datos en R ---------------------------
#visualizar datos o paquetes para realizar programas
help(package = "datasets")
data("Orange")
head(x =Orange)
## Tree age circumference
## 1 1 118 30
## 2 1 484 58
## 3 1 664 87
## 4 1 1004 115
## 5 1 1231 120
## 6 1 1372 142
# Observar base de datos grandes
tail(x = Orange)
## Tree age circumference
## 30 5 484 49
## 31 5 664 81
## 32 5 1004 125
## 33 5 1231 142
## 34 5 1372 174
## 35 5 1582 177
head(Orange, n = 1)
## Tree age circumference
## 1 1 118 30
tail(Orange, n = 7)
## Tree age circumference
## 29 5 118 30
## 30 5 484 49
## 31 5 664 81
## 32 5 1004 125
## 33 5 1231 142
## 34 5 1372 174
## 35 5 1582 177
# estructura, str():
str(Orange)
## Classes 'nfnGroupedData', 'nfGroupedData', 'groupedData' and 'data.frame': 35 obs. of 3 variables:
## $ Tree : Ord.factor w/ 5 levels "3"<"1"<"5"<"2"<..: 2 2 2 2 2 2 2 4 4 4 ...
## $ age : num 118 484 664 1004 1231 ...
## $ circumference: num 30 58 87 115 120 142 145 33 69 111 ...
## - attr(*, "formula")=Class 'formula' language circumference ~ age | Tree
## .. ..- attr(*, ".Environment")=<environment: R_EmptyEnv>
## - attr(*, "labels")=List of 2
## ..$ x: chr "Time since December 31, 1968"
## ..$ y: chr "Trunk circumference"
## - attr(*, "units")=List of 2
## ..$ x: chr "(days)"
## ..$ y: chr "(mm)"
# Vamos a observar la estructura de las variables, ademas observamos un ejemplo detallado
# numero de lineas
nrow(Orange)
## [1] 35
# para obserbar el numero de colunmas
ncol(Orange)
## [1] 3
dim(Orange)
## [1] 35 3
# para obserbar los nombres
names(Orange)
## [1] "Tree" "age" "circumference"
rm(Orange)
# cargando nuevamente
data("Orange")