You are on page 1of 10

clase1

Roly Ramos

2/3/2022

Introducción a R

Descarga e instalación de R

Interface de comandos
Aspectos básicos
En R prá cticamente todo es definido como un objeto; un dato numérico, un vector, una
matriz de datos o una funció n, son objetos, y R opera sobre ellos. Cada objeto tiene un
nombre, y el hecho de escribirlo en la ventana de comandos hará que se muestre su
contenido. R distingue entre distintos tipos de objetos (no es lo mismo un vector, una
matriz o una funció n) cada uno de los cuales posee características propias, que en el
entorno R se conocen como modo y atributos.
x<-5 # el número 5 es asignado al objeto x
x

## [1] 5

Si tras está asignació n se vuelve a reasignar un nuevo contenido a x, éste se almacenará


sobre el viejo objeto de modo que la primera asignació n desaparecerá .
x<-10
x

## [1] 10

Para nombrar objetos es posible utilizar letras, nú meros, guiones o el punto, que es
especialmente ú til porque permite prolongar el nombre del objeto. La ú nica restricció n en
el manejo de estos símbolos es que los nombres de los objetos no pueden comenzar por un
cará cter numérico. Otra característica de los nombres utilizados por R es que son caso-
sensitivos, de modo que “casa” no es equivalente a “Casa”, o el objeto “x” es diferente del
objeto “X”. Teclear “X”
Tipos de objetos

Double
R selecciona por defecto datos de tipo “doble” para representar nú meros. Los datos de este
tipo son valores numéricos continuos. Para verificar si un determinado dato es doble la
instrucció n a emplear sería is.double()
x<-25.6
is.double(x)

## [1] TRUE

y<-"a"
is.double(y)

## [1] FALSE

Enteros (Integer)
Se trata de variables numéricas de naturaleza no continua (p.e. nú mero de hijos). Para
definir un valor numérico como entero habría que recurrir a la funció n as.integer().
x<-7
is.integer(x)

## [1] FALSE

x<-as.integer(x)
is.integer(x)

## [1] TRUE

Complejos (complex)
Aunque R reconoce los nú meros complejos este tipo de formato no se utiliza apenas en el
aná lisis de datos.

Lógicos (logical)
Los datos de tipo ló gico só lo contienen dos valores FALSE(falso) y TRUE(verdadero). Son
generados por R tras evaluar expresiones ló gicas
x<-10
x>20

## [1] FALSE

(x>5)&(x<25)

## [1] TRUE
Carácter (Character)
Los datos de tipo cará cter se representan siempre entre comillas (“”)
a<-"clase R"
b<-"100"
c<-"m"
d<-100
is.character(a);is.character(b);is.character(c);is.character(d)

## [1] TRUE

## [1] TRUE

## [1] TRUE

## [1] FALSE

Las estructuras sobre las que trabaja R son: 1 Vector


2 Factor
3 Matriz
4 Array 5 Marco de Datos 6 Lista 7 Funció n

Matematicas básicas
Tipos de datos
Vectores
La estructura má s simple en R es un vector. Un vector es un objeto unidimensional
constituido por elementos del mismo tipo. Un ú nico nú mero es un vector de longitud
unidad. Los elementos de un vector pueden ser de tipo numérico, ló gico o cará cter, por lo
tanto, habrá vectores numéricos, ló gicos cará cter. Son ejemplos de vectores:
# vector numérico creado por concatenación
x<-c(2,4,6,7,8)

# vector lógico formado tras evaluar la condición


y<-x>5

# vector carácter formado por concatenación


z<-c(letters)
x

## [1] 2 4 6 7 8

## [1] FALSE FALSE TRUE TRUE TRUE

z
## [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q"
"r" "s"
## [20] "t" "u" "v" "w" "x" "y" "z"

El tipo de dato determinará el modo del vector, mode()que junto con su longitud (lenght)
será n sus atributos.
is.vector(x)

## [1] TRUE

mode(x)

## [1] "numeric"

str(x)

## num [1:5] 2 4 6 7 8

length(x)

## [1] 5

Generación de vectores
# concatenar: agrupa en un vector los números entre paréntesis
a=c(10,-5,0.2,4/3,0,4.3)
a

## [1] 10.000000 -5.000000 0.200000 1.333333 0.000000 4.300000

cursos=c("Matemática","Lengua","Química","Física")
cursos

## [1] "Matemática" "Lengua" "Química" "Física"

logico=c(TRUE,FALSE,TRUE,TRUE,FALSE)
logico

## [1] TRUE FALSE TRUE TRUE FALSE

#se puede usar los mismos vectores para crear otros


b=c(a,0.05,a,0.05)
b

## [1] 10.000000 -5.000000 0.200000 1.333333 0.000000 4.300000 0.050000


## [8] 10.000000 -5.000000 0.200000 1.333333 0.000000 4.300000 0.050000

Secuencias
#operador “:”.
diez=1:10
diez

## [1] 1 2 3 4 5 6 7 8 9 10
#operador seq
d=seq(from=1,to=10,by=1)
d

## [1] 1 2 3 4 5 6 7 8 9 10

La funció n rep() repite un vector dado, independientemente del nú mero de elementos que
contenga. El primer argumento de la funció n es el vector, y el segundo argumento puede
ser un nú mero que indica cuantas veces tiene que repetirse el vector.
rep(2,3) # repite el número 2 tres veces

## [1] 2 2 2

rep(1:3,3)

## [1] 1 2 3 1 2 3 1 2 3

rep(1:3,each=3)

## [1] 1 1 1 2 2 2 3 3 3

rep(1:3,1:3)

## [1] 1 2 2 3 3 3

Si el vector estuviera formado por caracteres, la generació n de secuencias podría incluir la


funció n letterso LETTERS. Ambas generan los 26 caracteres del alfabeto romano, bien en
minú sculas (letters) bien en mayú sculas (LETTERS)
alfabeto=c(letters)
alfabeto

## [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q"
"r" "s"
## [20] "t" "u" "v" "w" "x" "y" "z"

ALFABETO=c(LETTERS)
ALFABETO

## [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q"
"R" "S"
## [20] "T" "U" "V" "W" "X" "Y" "Z"

Operaciones
Los cá lculos matemá ticos ejecutados sobre vectores se llevan a cabo sobre cada uno de sus
elementos.
x=c(1,1,0.0001,5,4/5,3)
x

## [1] 1e+00 1e+00 1e-04 5e+00 8e-01 3e+00


x+3 #+3

## [1] 4.0000 4.0000 3.0001 8.0000 3.8000 6.0000

3*x #*3

## [1] 3.0000 3.0000 0.0003 15.0000 2.4000 9.0000

x*x # valores al cuadrado

## [1] 1.0e+00 1.0e+00 1.0e-08 2.5e+01 6.4e-01 9.0e+00

x^(4/3) #potencia al 4/3

## [1] 1.000000e+00 1.000000e+00 4.641589e-06 8.549880e+00 7.426542e-01


## [6] 4.326749e+00

log(x) #logaritmo

## [1] 0.0000000 0.0000000 -9.2103404 1.6094379 -0.2231436 1.0986123

sqrt(x)+5 #raiz cuadrada +5

## [1] 6.000000 6.000000 5.010000 7.236068 5.894427 6.732051

Si los vectores incluidos en una expresió n algebraica no son de la misma longitud, el vector
de menor longitud se repetirá hasta que alcance la longitud del vector mayor. El caso má s
simple podría quedar representado por un vector y un nú mero; el nú mero se repetirá
tantas veces como elementos tenga el vector.
x <- c(13,-4,0.5,1)
y <- 2
z <- x+y
z

## [1] 15.0 -2.0 2.5 3.0

Existen varias funciones específicas que trabajan sobre vectores. La tabla siguiente
presenta un resumen de las má s utilizadas.
a=c(10,-5,0.2,4/3,0,4.3,0,10,10)
a

## [1] 10.000000 -5.000000 0.200000 1.333333 0.000000 4.300000 0.000000


## [8] 10.000000 10.000000

length(a) #Longitud del vector

## [1] 9

sum(a) #Suma de los elementos del vector

## [1] 30.83333
prod(a) #Producto de los elementos del vector

## [1] 0

max(a) #Máximo valor del vector

## [1] 10

min(a) #Mínimo valor del vector

## [1] -5

cumsum(a) #Vector de sumas acumulada de los elementos

## [1] 10.000000 5.000000 5.200000 6.533333 6.533333 10.833333 10.833333


## [8] 20.833333 30.833333

cumprod(a) #Producto acumulado de los elementos

## [1] 10.00000 -50.00000 -10.00000 -13.33333 0.00000 0.00000 0.00000


## [8] 0.00000 0.00000

diff(a) #Vector de diferencias entre elementos

## [1] -15.000000 5.200000 1.133333 -1.333333 4.300000 -4.300000


10.000000
## [8] 0.000000

unique(a) #Un vector de valores únicos

## [1] 10.000000 -5.000000 0.200000 1.333333 0.000000 4.300000

duplicated(a) #Vector lógico que indica si los elementos están duplicados

## [1] FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE

La funció n sort() ordena los elementos de un vector en forma ascendente:


sort(a)

## [1] -5.000000 0.000000 0.000000 0.200000 1.333333 4.300000 10.000000


## [8] 10.000000 10.000000

Para ordenar el vector en modo descendente la funció n a utilizar sería rev(sort(x)),


rev(sort(a))

## [1] 10.000000 10.000000 10.000000 4.300000 1.333333 0.200000 0.000000


## [8] 0.000000 -5.000000

sort(a,TRUE)

## [1] 10.000000 10.000000 10.000000 4.300000 1.333333 0.200000 0.000000


## [8] 0.000000 -5.000000
La funció n order()genera un vector cuyos elementos indican el orden ascendente (o
descendente) que ocupan en el vector original sus integrantes.
order(a)

## [1] 2 5 7 3 4 6 1 8 9

La funció n rank(x) devuelve el orden de los elementos en el vector. Esta ú ltima permite
tratar las igualdades entre elementos (first, random, max, min) y los valores ausentes de
varias formas.
rank(a,ties.method = "max")

## [1] 9 1 4 5 3 6 3 9 9

rank(a,ties.method = "min")

## [1] 7 1 4 5 2 6 2 7 7

rank(a,ties.method = "random")

## [1] 8 1 4 5 2 6 3 9 7

rank(a,ties.method = "first")

## [1] 7 1 4 5 2 6 3 8 9

Se puede relizar calculos cruzados entre dos vectores conla funció n outer(). El resultado
será una matriz
a=1:4
b=c(-1,0,1)
outer(a,b,"+") #suma cruzada

## [,1] [,2] [,3]


## [1,] 0 1 2
## [2,] 1 2 3
## [3,] 2 3 4
## [4,] 3 4 5

outer(a,b,"*") #producto cruzado

## [,1] [,2] [,3]


## [1,] -1 0 1
## [2,] -2 0 2
## [3,] -3 0 3
## [4,] -4 0 4

Factores
El factor es el modo que utiliza R para almacenar variables categó ricas. En un factor se
guardan el nú mero de niveles de la variable categó rica, y el nú mero de elementos existente
en cada uno de ellos. Por ejemplo, en un cuestionario de personalidad donde hay 100
participantes, de los cuales 70 son mujeres y 30 son varones, se podría generar un vector
de variables cará cter de este modo:
sexo=c(rep("F",70),rep("M",30))
sexo=factor(sexo)
sexo

## [1] F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F
F F F
## [38] F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F M
M M M
## [75] M M M M M M M M M M M M M M M M M M M M M M M M M M
## Levels: F M

La utilizació n de factores reduce el espacio de almacenamiento del vector. Internamente el


factor sexo es almacenado como 569 valores de 1, y 700 valores de 2. Estos valores 1, 2, o
sus correspondientes etiquetas “F”/”M” son los niveles del factor. Por defecto los niveles se
almacenan siguiendo el orden alfanumérico, por lo tanto “F” precederá a “M”. El comando
levels() permite visualizar los niveles del factor, y el orden en el que éstos han sido
almacenados.
levels(sexo)

## [1] "F" "M"

El orden de los niveles del factor es importante porque determinará el orden en que
aparecerá n en las tablas o grá ficos en los que vayan a utilizarse. Para imponer un orden
predeterminado, el comando a emplear sería relevel().
sexo=relevel(sexo,ref="M")
levels(sexo)

## [1] "M" "F"

De modo alternativo al cambiar a modo factor se debe idnicar el nivel de los factores:
sexo=c(rep("F",7),rep("M",3))
sexo=factor(sexo)
sexo

## [1] F F F F F F F M M M
## Levels: F M

sexo <- factor(sexo, levels = c("M", "F"))


sexo

## [1] F F F F F F F M M M
## Levels: M F

levels(sexo)

## [1] "M" "F"


Combinación de niveles del factor
En ocasiones se hace necesaria la combinació n de varios niveles de un factor en un nuevo
nivel; por ejemplo, cuando el nú mero de elementos en cada nivel es excesivamente
reducido. Para ello, se podría seguir el siguiente procedimiento
edad <- c(rep("niño", 30), rep("adolescente",20),rep("adulto",
20),rep("mayor", 3))
edad <- factor (edad)
levels (edad)

## [1] "adolescente" "adulto" "mayor" "niño"

levels (edad) <- list (niño = "niño", adolescente="adolescente", adulto2 =


c("adulto","mayor"))
levels (edad)

## [1] "niño" "adolescente" "adulto2"

Las categorías adulto y mayor fueron unidas en categoría adulto2


# Crea un vector llamado edad con las edades de tus amigos (no importa la
cantidad)
edad= c(26,28,30,35,40,57)

You might also like