SlideShare a Scribd company logo
1 of 11
Lenguaje R: Sesión 2
ING. LUIS FERNANDO AGUAS B
2Sesión 2 – Manipulaciones simples: números y vectores
Vectores y asignaciones.
R trabaja sobre estructuras de datos. La estructura más simple es un vector
numérico, que consiste en un conjunto ordenado de números.
#Creamos un vector de reales mediante la función c y lo guardamos en la variable x.
> x <- c(1.3, 2.5, 4.2, 9.7, 8.1)
#Un número por sí mismo es un vector de longitud 1
> v <- 5
#Otras maneras de asignar menos utilizadas
> assign("x", c(1.3, 2.5, 4.2, 9.7, 8.1)) #Instrucción assign
> c(1.3, 2.5, 4.2, 9.7, 8.1) -> x #Asignación en la otra dirección
Si no se utiliza ninguna de las tres maneras de asignación ("<-", "->", "assign") el
resultado de nuestra expresión se muestra por pantalla pero no quedará guardado.
#Expresión: el resultado no se guarda
> c(x,0,x)
[1] 1.3 2.5 4.2 9.7 8.1 0.0 1.3 2.5 4.2 9.7 8.1
#Objeto especial de R que guarda el resultado del último comando ejecutado
> .Last.value
[1] 1.3 2.5 4.2 9.7 8.1 0.0 1.3 2.5 4.2 9.7 8.1
3Sesión 2 – Manipulaciones simples: números y vectores
Aritmética de vectores.
Al contrario que la mayoría de lenguajes de
programación, R tiene aritmética vectorial, por lo
que los vectores pueden aparecer en las
expresiones que generamos.
En caso que los vectores que aparecen en una
expresión no sean de la misma longitud, el más
corto se "recicla" hasta que alcanza la longitud del
más largo.
#Generamos dos vectores.
> x <- c(1.3, 2.5, 4.2, 9.7, 8.1)
> y <- c(x,0,x)
#Utilizamos x e y en una nueva expresión. Como x es más corto
#que y, se reciclará para adquirir su misma longitud. R nos avisa
#de este hecho porqué los dos vectores no tienen una longitud
#múltiple. El 1 en este caso también se recicla y pasa a ser un
#vector de once unoss.
> v <- 2*x + y + 1
Warning message:
longer object length
is not a multiple of shorter object length in: 2 * x + y
> v
[1] 4.9 8.5 13.6 30.1 25.3 3.6 7.3 11.9 24.6 26.9 11.7
Operador/función
suma
resta
multiplicación
división
módulo
división entera
raíz cuadrada
logaritmo nep.
log gen
exponencial
seno
coseno
tangente
máximo
mínimo
rango
longitud
sumatorio
producto
media
desv. estándar
varianza
Símbolo/instrucción
+
-
*
/
%%
%/%
sqrt
log
logb
exp
sin
cos
tan
max
min
range
length
sum
prod
mean
sd
var
4Sesión 2 – Manipulaciones simples: números y vectores
Generación de secuencias regulares.
R dispone de instrucciones para generar secuencias de números. Una de las más
utilizadas es el operador ":"
#Generamos un vector con los números 1, 2, 3, 4, …, 29, 30.
> 1:30 #Esto es equivalente al vector c(1, 2, …, 29, 30)
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#El operador ":" tiene la máxima preferencia
> n <- 10
> 1:n-1 #Aquí prevalece ":" sobre "-"
[1] 0 1 2 3 4 5 6 7 8 9
> 1:(n-1) #Forzamos la prioridad del "-"
[1] 1 2 3 4 5 6 7 8 9
Con la función seq también se pueden generar secuencias de números
#Generamos una secuencia de 1 a 30 saltando dos números cada vez
> seq(1,30,by=2)
[1] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
#La función seq admite también la longitud de la secuencia que queremos generar, de manera que ella misma
#decide el intervalo automáticamente
> seq(1,30,length=15)
[1] 1.000000 3.071429 5.142857 7.214286 9.285714 11.357143 13.428571 15.500000 17.571429
19.642857 21.714286 23.785714 25.857143 27.928571 30.000000
La función rep sirve para generar repeticiones de objetos (escalares o vectores)
5Sesión 2 – Manipulaciones simples: números y vectores
Valores missing.
En R los valores "desconocidos" o "no disponibles" (missings) se simbolizan con el
valor especial NA (Not Available). Cualquier operación que incluya un NA en
general devolverá NA como resultado.
La función is.na nos permite saber si un elemento es missing o no.
#Generamos un vector con los números 1, 2, 3 y un missing al final
> z <- c(1:3, NA)
> z
[1] 1 2 3 NA
> is.na(z) #Miramos que valores del vector son missing.
[1] FALSE FALSE FALSE TRUE
#La expresión z==NA no funciona!!!
> z==NA
[1] NA NA NA NA
Hay un segundo tipo de missings que se producen por computación numérica, lo
que se llama Not a Number. En R se simbolizan con el valor NaN.
> 0/0 #Provocamos un error numérico
[1] NaN
La función is.na retorna TRUE tanto para los NA como para los NaN. En cambio, la
función is.nan sólo retorna TRUE para los NaN.
6Sesión 2 – Manipulaciones simples: números y vectores
Vectores lógicos.
R permite la manipulación de cantidades lógicas. Los
valores de un vector lógico pueden ser TRUE o T
(cierto), FALSE o F (falso) y NA/NaN.
Los vectores lógicos se generan mediante
condiciones:
#Generamos un vector de 1 a 10
> x <- 1:10
#cond1 vector lógico, de la misma longitud que x, donde cada casilla
#nos dice si la correspondiente casilla de x cumple la condición x>7
> cond1 <- x > 7
> cond1
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE
En R los vectores lógicos se pueden utilizar en
aritmética ordinaria, siendo substituído (coercionado)
el FALSE por 0 y el TRUE por 1.
> cond2 <- x >= 9 #Generamos otra condición
> cond1 & cond2 #Hacemos una and lógica de las dos condiciones
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
> !cond1 #Negación lógica del vector cond1
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE
Operador
igualdad
desigualdad
menor
menor igual
mayor
mayor igual
and lógica
or lógica
negación lógica
Símbolo
==
!=
<
<=
>
>=
&
|
!
7Sesión 2 – Manipulaciones simples: números y vectores
Vectores de cadenas de caracteres (strings).
Los vectores de cadenas de caracteres se usan a menudo en R, principalmente
para guardar etiquetas.
Los caracteres pueden ser entrados utilizando comillas simples ('') o dobles (""),
aunque después R los muestra normalmente rodeados de comillas dobles. Como
en C, utilizan el carácter "" como carácter de escape. Algunos caracteres útiles
son el salto de linea (n) y tabulador (t).
La función paste toma un número arbitrario de argumentos y los concatena uno a
uno para transformarlos después en caracteres
#Concatenamos un vector de dos letras y otro de dos números posición a posición
> paste(c("X","Y"),1:2,sep="")
[1] "X1" "Y2"
#Ahora concatenamos vectores de diferente longitud y hacemos que el separador de la concatenación sea un
#punto ".". Nótese el reciclaje del vector corto.
> paste(c("X","Y"),1:4,sep=".")
[1] "X.1" "Y.2" "X.3" "Y.4"
#La función paste tiene otro argumento, llamado collapse, que fusiona todos los strings que genera para dar
#una única cadena de caracteres de salida. El valor de collapse es lo que se coloca en medio de las
#diferentes cadenas de caracteres que se unen.
> paste(c("X","Y"),1:4,sep=".",collapse="-")
[1] "X.1-Y.2-X.3-Y.4"
8Sesión 2 – Manipulaciones simples: números y vectores
Indexación de vectores (1).
Se puede seleccionar un subconjunto de los elementos de un vector añadiéndo al
lado de su nombre un vector de índices entre corchetes ([]). Los vectores de
índices pueden ser de cuatro tipos:
• Vectores lógicos: han de tener la misma longitud que el vector del cual se quieren
seleccionar elementos. Los valores que corresponden a TRUE en su correspondiente
posición del vector lógico serán seleccionados, y los que corresponden a FALSE seran
omitidos.
• Vectores de números enteros positivos: los valores que contienen deben estar entre 1
y length(x). Los correspondientes elementos del vector x son seleccionados y
concatenados en ese orden.
• Vectores de números enteros negativos: especifican los valores que serán excluídos
en vez de incluídos.
• Vectores de strings: sólo se pueden utilizar cuando el objecto tiene un atributo
llamado names (nombres) que identifica sus componentes. En este caso, un subvector
del vector de nombres se utilizaría de la misma manera como se utilizaría un vector de
enteros positivos. La ventaja es que estos nombres suelen ser más fáciles de recordar
que los índices de los elementos a seleccionar.
9Sesión 2 – Manipulaciones simples: números y vectores
Indexación de vectores (2).
> x <- c(1:5,NA,6:8,NA,9,10) #Generamos un vector con enteros de 1 a 10 y algunos missings por medio.
> x[!is.na(x)] #Indexación por vector lógico: escogemos aquellos elementos que no son NA.
[1] 1 2 3 4 5 6 7 8 9 10
> x[!is.na(x) & x%%2==0] #Vector lógico más complejo.
[1] 2 4 6 8 10
> x[1:5] #Indexación mediante vector de enteros positivos: nos quedamos con los 5 primeros elementos de x.
[1] 1 2 3 4 5
> x[c(1,3,5,7,9,11)] #Nos quedamos con las posiciones impares
[1] 1 3 5 6 8 9
> x[-(1:5)] #Indexación por enteros negativos: eliminamos los 5 primeros elementos de x
[1] NA 6 7 8 NA 9 10
> y <- c(5,18,7,13) #Indexación por vectores de strings.
> names(y) <- c("uno","dos","tres","cuatro") #Añadimos los names al vector.
> y[c("dos","tres")] #Seleccionamos mediante los names.
dos tres
18 7
Una indexación también puede aparecer en la parte izquierda de una asignación.
> x[is.na(x)] <- 0 #Substituimos los NA por 0.
> x[x>5] <- -x[x>5] #A los valores del vector superiores a 5 les cambiamos el signo.
10Sesión 2 – Manipulaciones simples: números y vectores
Coerción de tipos.
R, como la mayoría de lenguajes de programación, dispone de funciones para
realizar la coerción (transformación) de tipos.
Para que la coerción tenga lugar no se ha de dar ninguna incompatibilidad entre el
tipo origen y el tipo destino.
Así como las funciones de coerción, que suelen comenzar con la palabra as seguida
de un punto (as.integer) y el tipo de destino, también existen las funciones de
verificación de tipos, que se componen de is seguido de un punto y el tipo a verificar
(is.integer).
# Coerción correcta
> a <- c("1","2","3")
> b <- as.numeric(a)
> b
[1] 1 2 3
# Coerción incorrecta. Se introducen NA's.
> a <- c("1","2","x")
> b <- as.numeric(a)
> b
[1] 1 2 NA
Funciones más habituales
as.character
as.integer
as.double
as.complex
as.numeric
as.logical
as.factor
11Sesión 2 – Manipulaciones simples: números y vectores
Otros tipos de objectos en R.
• Arrays y matrices (matrix): generación multidimensional de los vectores. Todos
los elementos de la matriz han de ser del mismo tipo.
• Factores (factor): útiles para el uso de datos categóricos.
• Listas (list): generalización de los vectores donde los elementos pueden ser de
diferentes tipos (incluso vectores o nuevas listas).
• Data frames: matrices donde las diferentes columnas pueden tener valores de
diferentes tipos.
• Funciones (function): conjunto de código de R ejecutable y parametrizable.
• Cualquier objeto en R tiene las propiedades mode y length.
• Mode: tipo de datos de los elementos que forman un objeto (numeric, complex,
logical y character).
• Length: número de elementos que contiene el objeto.

More Related Content

What's hot

Arreglos bidimensionales o matrices
Arreglos bidimensionales o matricesArreglos bidimensionales o matrices
Arreglos bidimensionales o matrices
AriannaYadiraT
 
Aplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionalesAplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionales
marigelcontreras
 
Matlab 2 Capitulo 6
Matlab 2 Capitulo 6Matlab 2 Capitulo 6
Matlab 2 Capitulo 6
guest4f4d78d
 
S1 4 ejercicios_integrales_basicas
S1 4 ejercicios_integrales_basicasS1 4 ejercicios_integrales_basicas
S1 4 ejercicios_integrales_basicas
jesquerrev1
 
Derive 6 (integrales)
Derive 6 (integrales)Derive 6 (integrales)
Derive 6 (integrales)
jalidf
 
Seminario de matlab
Seminario de matlabSeminario de matlab
Seminario de matlab
jamarzo
 

What's hot (20)

Matlab
MatlabMatlab
Matlab
 
Graficos matlab
Graficos matlabGraficos matlab
Graficos matlab
 
Arreglos bidimensionales o matrices
Arreglos bidimensionales o matricesArreglos bidimensionales o matrices
Arreglos bidimensionales o matrices
 
Arreglos
ArreglosArreglos
Arreglos
 
Desarrollo de ejercicios básicos en matlab
Desarrollo de ejercicios básicos en matlabDesarrollo de ejercicios básicos en matlab
Desarrollo de ejercicios básicos en matlab
 
Aplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionalesAplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionales
 
Arrays unidimensionales
Arrays unidimensionalesArrays unidimensionales
Arrays unidimensionales
 
Matrices unidimensional
Matrices unidimensionalMatrices unidimensional
Matrices unidimensional
 
Arreglos Bidimensionales - Java - NetBeans
Arreglos Bidimensionales - Java - NetBeansArreglos Bidimensionales - Java - NetBeans
Arreglos Bidimensionales - Java - NetBeans
 
Tutorial de derive 6
Tutorial  de derive 6Tutorial  de derive 6
Tutorial de derive 6
 
Matlab 2 Capitulo 6
Matlab 2 Capitulo 6Matlab 2 Capitulo 6
Matlab 2 Capitulo 6
 
S1 1 derivadas
S1 1 derivadasS1 1 derivadas
S1 1 derivadas
 
Matrices pseint
Matrices   pseintMatrices   pseint
Matrices pseint
 
S1 4 ejercicios_integrales_basicas
S1 4 ejercicios_integrales_basicasS1 4 ejercicios_integrales_basicas
S1 4 ejercicios_integrales_basicas
 
16 Curso de POO en java - arreglos unidimensionales
16 Curso de POO en java - arreglos unidimensionales16 Curso de POO en java - arreglos unidimensionales
16 Curso de POO en java - arreglos unidimensionales
 
Guia 2 matlab
Guia 2 matlabGuia 2 matlab
Guia 2 matlab
 
Capitulo5
Capitulo5Capitulo5
Capitulo5
 
Matlab3
Matlab3Matlab3
Matlab3
 
Derive 6 (integrales)
Derive 6 (integrales)Derive 6 (integrales)
Derive 6 (integrales)
 
Seminario de matlab
Seminario de matlabSeminario de matlab
Seminario de matlab
 

Viewers also liked

Costos industriales
Costos industrialesCostos industriales
Costos industriales
yhameille
 
Costos industriales - Definición básica
Costos industriales - Definición básicaCostos industriales - Definición básica
Costos industriales - Definición básica
Vanessa Ortiz
 

Viewers also liked (20)

Estadística con Lenguaje R: Sesión 1
Estadística con Lenguaje R: Sesión 1Estadística con Lenguaje R: Sesión 1
Estadística con Lenguaje R: Sesión 1
 
Estadística con Lenguaje R: Sesión 5
Estadística con Lenguaje R: Sesión 5Estadística con Lenguaje R: Sesión 5
Estadística con Lenguaje R: Sesión 5
 
Estadística con Lenguaje R: Sesión 7
Estadística con Lenguaje R: Sesión 7Estadística con Lenguaje R: Sesión 7
Estadística con Lenguaje R: Sesión 7
 
Transformación digital en cifras
Transformación digital en cifrasTransformación digital en cifras
Transformación digital en cifras
 
Estadística con Lenguaje R: Sesión 4
Estadística con Lenguaje R: Sesión 4Estadística con Lenguaje R: Sesión 4
Estadística con Lenguaje R: Sesión 4
 
Estadística con Lenguaje R: Sesión 8
Estadística con Lenguaje R: Sesión 8Estadística con Lenguaje R: Sesión 8
Estadística con Lenguaje R: Sesión 8
 
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
 
Transformación digital y el nuevo paradigma de TI
Transformación digital y el nuevo paradigma de TI Transformación digital y el nuevo paradigma de TI
Transformación digital y el nuevo paradigma de TI
 
Estadística con Lenguaje R: Sesión Introductoria
Estadística con Lenguaje R: Sesión IntroductoriaEstadística con Lenguaje R: Sesión Introductoria
Estadística con Lenguaje R: Sesión Introductoria
 
Introduccion al Programa R
Introduccion al Programa RIntroduccion al Programa R
Introduccion al Programa R
 
LA EMPRESA DEL FUTURO EN LA ERA DIGITAL - INNOVACIÓN Y TRANSFORMACIÓN DIGITAL
LA EMPRESA DEL FUTURO EN LA ERA DIGITAL - INNOVACIÓN Y TRANSFORMACIÓN DIGITALLA EMPRESA DEL FUTURO EN LA ERA DIGITAL - INNOVACIÓN Y TRANSFORMACIÓN DIGITAL
LA EMPRESA DEL FUTURO EN LA ERA DIGITAL - INNOVACIÓN Y TRANSFORMACIÓN DIGITAL
 
Estadística con R Commander
Estadística con R CommanderEstadística con R Commander
Estadística con R Commander
 
Estadisticas Descriptivas e Inferencia utilizando R (Taller Intermedio) UPDATED
Estadisticas Descriptivas e Inferencia utilizando R (Taller Intermedio) UPDATEDEstadisticas Descriptivas e Inferencia utilizando R (Taller Intermedio) UPDATED
Estadisticas Descriptivas e Inferencia utilizando R (Taller Intermedio) UPDATED
 
R- Introduction
R- IntroductionR- Introduction
R- Introduction
 
Los costos en la industria
Los costos en la industriaLos costos en la industria
Los costos en la industria
 
Costos industriales
Costos industrialesCostos industriales
Costos industriales
 
LENGUAJE DE PROGRAMACION R
LENGUAJE DE PROGRAMACION RLENGUAJE DE PROGRAMACION R
LENGUAJE DE PROGRAMACION R
 
administracion de operaciones
administracion de operacionesadministracion de operaciones
administracion de operaciones
 
Costos industriales
Costos industrialesCostos industriales
Costos industriales
 
Costos industriales - Definición básica
Costos industriales - Definición básicaCostos industriales - Definición básica
Costos industriales - Definición básica
 

Similar to Estadística con Lenguaje R: Sesión 2 (20)

Matlabreyes
MatlabreyesMatlabreyes
Matlabreyes
 
Practica 1 Introduccion Al R
Practica 1 Introduccion Al RPractica 1 Introduccion Al R
Practica 1 Introduccion Al R
 
Introducion al matlab
Introducion al matlabIntroducion al matlab
Introducion al matlab
 
Notas matlab
Notas matlabNotas matlab
Notas matlab
 
Intro_Matlab_1.pdf
Intro_Matlab_1.pdfIntro_Matlab_1.pdf
Intro_Matlab_1.pdf
 
Matlab
MatlabMatlab
Matlab
 
Manual Matlab 2008
Manual Matlab 2008Manual Matlab 2008
Manual Matlab 2008
 
Sistemas de Ecuaciones Lineales
Sistemas de Ecuaciones Lineales Sistemas de Ecuaciones Lineales
Sistemas de Ecuaciones Lineales
 
Suma de imagenes
Suma de imagenesSuma de imagenes
Suma de imagenes
 
Graficas
GraficasGraficas
Graficas
 
CLASE 01.pdf
CLASE 01.pdfCLASE 01.pdf
CLASE 01.pdf
 
Tutorial matlab
Tutorial matlabTutorial matlab
Tutorial matlab
 
Breves apuntes matlab5
Breves apuntes matlab5Breves apuntes matlab5
Breves apuntes matlab5
 
Apuntesmatlab
ApuntesmatlabApuntesmatlab
Apuntesmatlab
 
CLASE 04.pdf
CLASE 04.pdfCLASE 04.pdf
CLASE 04.pdf
 
APUNTES DE MATHLAB.pdf
APUNTES DE MATHLAB.pdfAPUNTES DE MATHLAB.pdf
APUNTES DE MATHLAB.pdf
 
Int_Octave_II_2021.pptx
Int_Octave_II_2021.pptxInt_Octave_II_2021.pptx
Int_Octave_II_2021.pptx
 
Curso de introduccion_al_matlab
Curso de introduccion_al_matlabCurso de introduccion_al_matlab
Curso de introduccion_al_matlab
 
Trabajo matlab
Trabajo matlabTrabajo matlab
Trabajo matlab
 
Matlab basico
Matlab basicoMatlab basico
Matlab basico
 

More from Luis Fernando Aguas Bucheli (20)

EFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptxEFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptx
 
P-S2.pptx
P-S2.pptxP-S2.pptx
P-S2.pptx
 
EBTS-S1.pptx
EBTS-S1.pptxEBTS-S1.pptx
EBTS-S1.pptx
 
P-S3.pptx
P-S3.pptxP-S3.pptx
P-S3.pptx
 
EBTS-S4.pptx
EBTS-S4.pptxEBTS-S4.pptx
EBTS-S4.pptx
 
P-S4.pptx
P-S4.pptxP-S4.pptx
P-S4.pptx
 
P-S1.pptx
P-S1.pptxP-S1.pptx
P-S1.pptx
 
EBTS-S3.pptx
EBTS-S3.pptxEBTS-S3.pptx
EBTS-S3.pptx
 
EBTS-S2.pptx
EBTS-S2.pptxEBTS-S2.pptx
EBTS-S2.pptx
 
PDIDTI-S7.pptx
PDIDTI-S7.pptxPDIDTI-S7.pptx
PDIDTI-S7.pptx
 
PDIDTI-S4.pptx
PDIDTI-S4.pptxPDIDTI-S4.pptx
PDIDTI-S4.pptx
 
PDIDTI-S2.pptx
PDIDTI-S2.pptxPDIDTI-S2.pptx
PDIDTI-S2.pptx
 
PDIDTI-S1.pptx
PDIDTI-S1.pptxPDIDTI-S1.pptx
PDIDTI-S1.pptx
 
PDIDTI-S8.pptx
PDIDTI-S8.pptxPDIDTI-S8.pptx
PDIDTI-S8.pptx
 
PDIDTI-S6.pptx
PDIDTI-S6.pptxPDIDTI-S6.pptx
PDIDTI-S6.pptx
 
PDIDTI-S5.pptx
PDIDTI-S5.pptxPDIDTI-S5.pptx
PDIDTI-S5.pptx
 
PDIDTI-S3.pptx
PDIDTI-S3.pptxPDIDTI-S3.pptx
PDIDTI-S3.pptx
 
TIC-S4.pptx
TIC-S4.pptxTIC-S4.pptx
TIC-S4.pptx
 
TIC-S3.pptx
TIC-S3.pptxTIC-S3.pptx
TIC-S3.pptx
 
TIC-S2.pptx
TIC-S2.pptxTIC-S2.pptx
TIC-S2.pptx
 

Recently uploaded

2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
NadiaMartnez11
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 

Recently uploaded (20)

Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptxEL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 

Estadística con Lenguaje R: Sesión 2

  • 1. Lenguaje R: Sesión 2 ING. LUIS FERNANDO AGUAS B
  • 2. 2Sesión 2 – Manipulaciones simples: números y vectores Vectores y asignaciones. R trabaja sobre estructuras de datos. La estructura más simple es un vector numérico, que consiste en un conjunto ordenado de números. #Creamos un vector de reales mediante la función c y lo guardamos en la variable x. > x <- c(1.3, 2.5, 4.2, 9.7, 8.1) #Un número por sí mismo es un vector de longitud 1 > v <- 5 #Otras maneras de asignar menos utilizadas > assign("x", c(1.3, 2.5, 4.2, 9.7, 8.1)) #Instrucción assign > c(1.3, 2.5, 4.2, 9.7, 8.1) -> x #Asignación en la otra dirección Si no se utiliza ninguna de las tres maneras de asignación ("<-", "->", "assign") el resultado de nuestra expresión se muestra por pantalla pero no quedará guardado. #Expresión: el resultado no se guarda > c(x,0,x) [1] 1.3 2.5 4.2 9.7 8.1 0.0 1.3 2.5 4.2 9.7 8.1 #Objeto especial de R que guarda el resultado del último comando ejecutado > .Last.value [1] 1.3 2.5 4.2 9.7 8.1 0.0 1.3 2.5 4.2 9.7 8.1
  • 3. 3Sesión 2 – Manipulaciones simples: números y vectores Aritmética de vectores. Al contrario que la mayoría de lenguajes de programación, R tiene aritmética vectorial, por lo que los vectores pueden aparecer en las expresiones que generamos. En caso que los vectores que aparecen en una expresión no sean de la misma longitud, el más corto se "recicla" hasta que alcanza la longitud del más largo. #Generamos dos vectores. > x <- c(1.3, 2.5, 4.2, 9.7, 8.1) > y <- c(x,0,x) #Utilizamos x e y en una nueva expresión. Como x es más corto #que y, se reciclará para adquirir su misma longitud. R nos avisa #de este hecho porqué los dos vectores no tienen una longitud #múltiple. El 1 en este caso también se recicla y pasa a ser un #vector de once unoss. > v <- 2*x + y + 1 Warning message: longer object length is not a multiple of shorter object length in: 2 * x + y > v [1] 4.9 8.5 13.6 30.1 25.3 3.6 7.3 11.9 24.6 26.9 11.7 Operador/función suma resta multiplicación división módulo división entera raíz cuadrada logaritmo nep. log gen exponencial seno coseno tangente máximo mínimo rango longitud sumatorio producto media desv. estándar varianza Símbolo/instrucción + - * / %% %/% sqrt log logb exp sin cos tan max min range length sum prod mean sd var
  • 4. 4Sesión 2 – Manipulaciones simples: números y vectores Generación de secuencias regulares. R dispone de instrucciones para generar secuencias de números. Una de las más utilizadas es el operador ":" #Generamos un vector con los números 1, 2, 3, 4, …, 29, 30. > 1:30 #Esto es equivalente al vector c(1, 2, …, 29, 30) [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #El operador ":" tiene la máxima preferencia > n <- 10 > 1:n-1 #Aquí prevalece ":" sobre "-" [1] 0 1 2 3 4 5 6 7 8 9 > 1:(n-1) #Forzamos la prioridad del "-" [1] 1 2 3 4 5 6 7 8 9 Con la función seq también se pueden generar secuencias de números #Generamos una secuencia de 1 a 30 saltando dos números cada vez > seq(1,30,by=2) [1] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 #La función seq admite también la longitud de la secuencia que queremos generar, de manera que ella misma #decide el intervalo automáticamente > seq(1,30,length=15) [1] 1.000000 3.071429 5.142857 7.214286 9.285714 11.357143 13.428571 15.500000 17.571429 19.642857 21.714286 23.785714 25.857143 27.928571 30.000000 La función rep sirve para generar repeticiones de objetos (escalares o vectores)
  • 5. 5Sesión 2 – Manipulaciones simples: números y vectores Valores missing. En R los valores "desconocidos" o "no disponibles" (missings) se simbolizan con el valor especial NA (Not Available). Cualquier operación que incluya un NA en general devolverá NA como resultado. La función is.na nos permite saber si un elemento es missing o no. #Generamos un vector con los números 1, 2, 3 y un missing al final > z <- c(1:3, NA) > z [1] 1 2 3 NA > is.na(z) #Miramos que valores del vector son missing. [1] FALSE FALSE FALSE TRUE #La expresión z==NA no funciona!!! > z==NA [1] NA NA NA NA Hay un segundo tipo de missings que se producen por computación numérica, lo que se llama Not a Number. En R se simbolizan con el valor NaN. > 0/0 #Provocamos un error numérico [1] NaN La función is.na retorna TRUE tanto para los NA como para los NaN. En cambio, la función is.nan sólo retorna TRUE para los NaN.
  • 6. 6Sesión 2 – Manipulaciones simples: números y vectores Vectores lógicos. R permite la manipulación de cantidades lógicas. Los valores de un vector lógico pueden ser TRUE o T (cierto), FALSE o F (falso) y NA/NaN. Los vectores lógicos se generan mediante condiciones: #Generamos un vector de 1 a 10 > x <- 1:10 #cond1 vector lógico, de la misma longitud que x, donde cada casilla #nos dice si la correspondiente casilla de x cumple la condición x>7 > cond1 <- x > 7 > cond1 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE En R los vectores lógicos se pueden utilizar en aritmética ordinaria, siendo substituído (coercionado) el FALSE por 0 y el TRUE por 1. > cond2 <- x >= 9 #Generamos otra condición > cond1 & cond2 #Hacemos una and lógica de las dos condiciones [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE > !cond1 #Negación lógica del vector cond1 [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE Operador igualdad desigualdad menor menor igual mayor mayor igual and lógica or lógica negación lógica Símbolo == != < <= > >= & | !
  • 7. 7Sesión 2 – Manipulaciones simples: números y vectores Vectores de cadenas de caracteres (strings). Los vectores de cadenas de caracteres se usan a menudo en R, principalmente para guardar etiquetas. Los caracteres pueden ser entrados utilizando comillas simples ('') o dobles (""), aunque después R los muestra normalmente rodeados de comillas dobles. Como en C, utilizan el carácter "" como carácter de escape. Algunos caracteres útiles son el salto de linea (n) y tabulador (t). La función paste toma un número arbitrario de argumentos y los concatena uno a uno para transformarlos después en caracteres #Concatenamos un vector de dos letras y otro de dos números posición a posición > paste(c("X","Y"),1:2,sep="") [1] "X1" "Y2" #Ahora concatenamos vectores de diferente longitud y hacemos que el separador de la concatenación sea un #punto ".". Nótese el reciclaje del vector corto. > paste(c("X","Y"),1:4,sep=".") [1] "X.1" "Y.2" "X.3" "Y.4" #La función paste tiene otro argumento, llamado collapse, que fusiona todos los strings que genera para dar #una única cadena de caracteres de salida. El valor de collapse es lo que se coloca en medio de las #diferentes cadenas de caracteres que se unen. > paste(c("X","Y"),1:4,sep=".",collapse="-") [1] "X.1-Y.2-X.3-Y.4"
  • 8. 8Sesión 2 – Manipulaciones simples: números y vectores Indexación de vectores (1). Se puede seleccionar un subconjunto de los elementos de un vector añadiéndo al lado de su nombre un vector de índices entre corchetes ([]). Los vectores de índices pueden ser de cuatro tipos: • Vectores lógicos: han de tener la misma longitud que el vector del cual se quieren seleccionar elementos. Los valores que corresponden a TRUE en su correspondiente posición del vector lógico serán seleccionados, y los que corresponden a FALSE seran omitidos. • Vectores de números enteros positivos: los valores que contienen deben estar entre 1 y length(x). Los correspondientes elementos del vector x son seleccionados y concatenados en ese orden. • Vectores de números enteros negativos: especifican los valores que serán excluídos en vez de incluídos. • Vectores de strings: sólo se pueden utilizar cuando el objecto tiene un atributo llamado names (nombres) que identifica sus componentes. En este caso, un subvector del vector de nombres se utilizaría de la misma manera como se utilizaría un vector de enteros positivos. La ventaja es que estos nombres suelen ser más fáciles de recordar que los índices de los elementos a seleccionar.
  • 9. 9Sesión 2 – Manipulaciones simples: números y vectores Indexación de vectores (2). > x <- c(1:5,NA,6:8,NA,9,10) #Generamos un vector con enteros de 1 a 10 y algunos missings por medio. > x[!is.na(x)] #Indexación por vector lógico: escogemos aquellos elementos que no son NA. [1] 1 2 3 4 5 6 7 8 9 10 > x[!is.na(x) & x%%2==0] #Vector lógico más complejo. [1] 2 4 6 8 10 > x[1:5] #Indexación mediante vector de enteros positivos: nos quedamos con los 5 primeros elementos de x. [1] 1 2 3 4 5 > x[c(1,3,5,7,9,11)] #Nos quedamos con las posiciones impares [1] 1 3 5 6 8 9 > x[-(1:5)] #Indexación por enteros negativos: eliminamos los 5 primeros elementos de x [1] NA 6 7 8 NA 9 10 > y <- c(5,18,7,13) #Indexación por vectores de strings. > names(y) <- c("uno","dos","tres","cuatro") #Añadimos los names al vector. > y[c("dos","tres")] #Seleccionamos mediante los names. dos tres 18 7 Una indexación también puede aparecer en la parte izquierda de una asignación. > x[is.na(x)] <- 0 #Substituimos los NA por 0. > x[x>5] <- -x[x>5] #A los valores del vector superiores a 5 les cambiamos el signo.
  • 10. 10Sesión 2 – Manipulaciones simples: números y vectores Coerción de tipos. R, como la mayoría de lenguajes de programación, dispone de funciones para realizar la coerción (transformación) de tipos. Para que la coerción tenga lugar no se ha de dar ninguna incompatibilidad entre el tipo origen y el tipo destino. Así como las funciones de coerción, que suelen comenzar con la palabra as seguida de un punto (as.integer) y el tipo de destino, también existen las funciones de verificación de tipos, que se componen de is seguido de un punto y el tipo a verificar (is.integer). # Coerción correcta > a <- c("1","2","3") > b <- as.numeric(a) > b [1] 1 2 3 # Coerción incorrecta. Se introducen NA's. > a <- c("1","2","x") > b <- as.numeric(a) > b [1] 1 2 NA Funciones más habituales as.character as.integer as.double as.complex as.numeric as.logical as.factor
  • 11. 11Sesión 2 – Manipulaciones simples: números y vectores Otros tipos de objectos en R. • Arrays y matrices (matrix): generación multidimensional de los vectores. Todos los elementos de la matriz han de ser del mismo tipo. • Factores (factor): útiles para el uso de datos categóricos. • Listas (list): generalización de los vectores donde los elementos pueden ser de diferentes tipos (incluso vectores o nuevas listas). • Data frames: matrices donde las diferentes columnas pueden tener valores de diferentes tipos. • Funciones (function): conjunto de código de R ejecutable y parametrizable. • Cualquier objeto en R tiene las propiedades mode y length. • Mode: tipo de datos de los elementos que forman un objeto (numeric, complex, logical y character). • Length: número de elementos que contiene el objeto.