Está en la página 1de 9

# Aritmética en R

2 + 2
9 / 3
5 %% 2
3 + 2 - 10 ^ 2
3 + (2 - 10) ^ 2
sqrt(16)
sqrt(2)

# Asignando valores a una variable

var1 <- 3
var1

var1^2

var2 = 4
var2

var2^2

var1^2 + var2^2

Var1 #distingue mayúsculas y minúsculas

# Sobreescribiendo una variable

var1 <- var1^2


var1

#funciones

cos(3.14159)

cos(pi)

acos(-1)

acos(cos(pi))

exp(1)

log(2)

log (exp(1))

log10(2)

log(16, base = 2)

factorial(10)

# indeterminados
1 / 0

0 / 0

# Operadores Lógicos

valor1 = TRUE

valor1

class(valor1)

valor2 = FALSE

valor1 && valor2

valor1 || valor2

!valor1

!valor2

# Funciones cuya salida es un operador lógico

4 < 2

4 > 2

var1 == var2

var1 != var2

# Cadenas de texto

text1 = "Hola Mundo"

text1

class(text1)

toupper(text1)

substring(text1, 1, 4)

# ¿Cómo obtener la H?

gsub("a", "i", text1)

text2 <- "¿Cómo estás?"

paste(text1,text2)

#Vectores y llamados
vec1 <- c(8, 6, 7, 5, 3, 0, 9)

vec1

vec1[1]

vec1[7]

vec1[10]

length(vec1)

vec1[length(vec1)]

vec1[1:3]

vec1[2:5]

vec1[c(1,3,5)]

vec2 = c(5, 3, 8, 2, 10, 0, 1)

vec1+vec2

vec3 = c(3, TRUE, 4, "DOS", 3, 8, 2)

vec3

vec1+vec3

vec4 = c(3, NA, 4, NA, 3, 8, 2)

vec1+vec4

# Generando un vector usando seq

vec5 = seq(2, 16, by=2)

vec5

vec6 = seq(50, 20, by=-2)

vec6

vec7 = seq(0, 1, by=0.01)

vec7

length(vec7)

# Aritmética entre vectores

vec1 + vec2
vec1 - vec2

vec1*vec2 # No es el producto vectorial

vec1 %*% vec2

vec1/vec2

vec1+vec8

vec1 + 3

vec1 + c(3, 3, 3, 3, 3, 3, 3)

vec1 + c(3, 3)

vec5 + c(3, 3)

vec1^2

vec1^vec2

sqrt(vec1)

exp(vec1)

log(vec1)

# Funciones sobre vectores

min(vec1)

max(vec1)

sum(vec2)

mean(vec2)

sd(vec2)

sort(vec6)

sort(vec6, decreasing = TRUE)

# ¿Qué pasa si entran textos?

sum(vec3)

# ¿Qué pasa si entra NA?

sum(vec4)

sum(vec4, na.rm = TRUE) # na.rm se usa para remover (o no) los na


sum(vec4, na.rm = FALSE) # na.rm se usa para remover (o no) los na

vec1 + vec4

#filtrando NA

is.na(vec4)

# ¿Qué pasa con un vector lógico?

vec8=c(TRUE, TRUE, FALSE, TRUE)

sum(vec8)

mean(vec8)

# Usando lógica sobre vectores

sum(is.na(vec4)) # Contando nulos

sum(!is.na(vec4)) # Contando no nulos

sum(vec1 > 5)

vec1 > 5

# Llamados II

vec4[is.na(vec4)]

vec4[!is.na(vec4)]

vec1[vec1 > 5]

vec1[vec2 > 5]

# Asignaciones

vec2[5] = 1

vec2

vec4[is.na(vec4)] <- 0 # Reemplazando NA por 0

vec6[vec6 < 40] <- 0 # Reemplazando los menores a 40 por 0

vec8[-2]

vec7[-(3:5)]

vec7[-c(3,5)]

# Arreglando el vector 3 (Coerción)


vec3[2] = 1

vec3[4] = 2

sum(vec3)

vec3 = as.numeric(vec3) # También existen as.logical, as.character

sum(vec3)

# Matrices

m1=c(1,2,4)

m2=c(3,2,5)

m=matrix(c(m1,m2),nrow = 3,ncol=2)

m3=c(1,5,6)

m5=cbind(m,m3)

m5

# Subconjuntos de una matriz

m5[1:2,]

m5[,1:2]

m5[1:2,1:2]

m5[c(1,3),]

m5[,c(1,3)]

m5[c(1,3),c(1,3)]

diag(m5)

t(m)

m6 = t(m5)

m6

# Operaciones entre matrices

m4 + m5

m5 + 3
m5 %*% m6

m5 %*% m

m %*% m5

m5^2

sqrt(m5)

exp(m5)

solve(m5)

det(m5)

dim(m5)

m7 = matrix(1:12, nrow = 4, ncol = 3)

m8 = rbind(m4,m7)

# Estructuras de control

prueba = 30

if(prueba < 30){


print('Es un número pequeño')
}

if(prueba < 30){


print('Es un número pequeño')
}else{
print('Es un número grande')
}

if(prueba < 30){


print('Es un número pequeño')
}else{if(prueba > 30){
print('Es un número grande')
}else{
print('Cambie de número')
}
}

ifelse(prueba < 30,'Es un número pequeño','Es un número grande') #vectorizado

ifelse(m6 < 30,'Es un número pequeño','Es un número grande')

# Par e impar

ifelse(prueba %% 2 == 0, 'par','impar')
ifelse(vec1 %% 2 == 0, 'par','impar')

list = vec1

for(i in 1:length(list)){
print(list[i])
}

for(value in list){
print(value)
}

for(value in list){
print(value)
}

for(value in list){
if(value < 3){
print('perdiste')
}else{
print('pasaste')
}
}

for(value in list){
if(value > 5){
print(paste(value, " no es una nota válida"))
}
}

for(i in 1:length(list)){
if(list[i] > 5){
print(paste(value, " no es una nota válida"))
print(paste("Corregir la entrada ",i))
}
}

for(i in 1:length(list)){
if(list[i] > 5){
print(paste(list[i], " no es una nota válida y será corregida"))
list[i] = 5
}
}
list

i=1
while (i <= length(list)) {
print(list[i])
i = i+1
}

## readxl
install.packages("readxl")
library('readxl')
#setwd()
df <- read_excel("Taller1.xlsx")

#df1 <- read_excel("Taller1.xlsx", sheet = 1)


#df2 <- read_excel("Taller1.xlsx", sheet = 2)
#df3 <- read_excel("Taller1.xlsx", sheet = 3)

colnames(df)

df["HORAS DE TRABAJO"]
df[41,"HORAS DE TRABAJO"]

df[df["HORAS DE TRABAJO"]>100]
df["HORAS DE TRABAJO"][df["HORAS DE TRABAJO"]>100]

## cargar un JSON
## JSON = javaScript Object Notation
## https://www.datos.gov.co/Transporte/SECTORES-CRITICOS-POR-EXCESO-DE-
VELOCIDAD/24ny-2dhf
install.packages("jsonlite")
library(jsonlite)
install.packages("curl")
library(curl)
dfjson <- fromJSON('https://www.datos.gov.co/resource/24ny-2dhf.json')

## Aleatorios
runif(10)

runif(10)*10

round(runif(10)*10,0)

También podría gustarte