PDF de programación - R como instrumento de trabajo - La sintaxis de R en la práctica

Imágen de pdf R como instrumento de trabajo - La sintaxis de R en la práctica

R como instrumento de trabajo - La sintaxis de R en la prácticagráfica de visualizaciones

Publicado el 28 de Septiembre del 2018
817 visualizaciones desde el 28 de Septiembre del 2018
345,4 KB
20 paginas
Creado hace 7a (03/02/2017)
R como instrumento de trabajoLa sintaxis de R en la

práctica

versión: Fri Feb 3 14:50:27 2017

1. Sintaxis de R: breve repaso

En este documento se recogen los aspectos mas relevante del uso de R y que permiten iniciarse en el uso de
esta potente herramienta.

2. Expresiones

R evalúa expresiones.
Las expresiones se escriben siguiendo una sintaxis precisa.
Existe muchas alternativas para obtener un mismo resultado.
Las expresiones contienen:

• valores
• funciones
• objetos
• operadores
• espacios en blanco: tanto como desee para mejorar la lectura
• El carácter # genera un comentario a su derecha

En la expresiones cualquier valor puede ser sustituido por una expresión.

Para definir un procedimiento de cálculo o programa recurrimos a un conjunto de expresiones de acuerdo a
un algoritmo. Estos procedimiento son secuenciales, se evalúan las expresiones empezando por la primera, en
un proceso secuencial.

3. Valores

Podemos utilizar valores numéricos, lógicos o de texto; operadores aritméticos o lógicos y funciones para
realizar un sin fin de procedimientos.

3.1. Valores numéricos
Los valores numéricos en R pueden ser enteros, reales o complejos; pueden aparecer de forma individual o en
conjuntos (ver vectores, matrices y otros).
Las operaciones que devuelven una indeterminación proporcionan el valor correspondiente: −∞, se representa
por -Inf, o ∞, se representa por Inf; las que no tiene un resultado numérico devuelven NaN: not is a number;
y cuando el valor no existe encontramos NA, not available o missing value, para indicarlo.
Los siguientes ejemplos muestran el uso de valores numéricos entreros y reales.
> 2

[1] 2
> 0.021

1

[1] 0.021
> 1e6

[1] 1e+06
> 1e6 + 1

[1] 1000001

# valor de tipo real

# resultado entero

3.1.1. Conversión

> 1e7

[1] 1e+07
> as.integer( 1e7 )

# Entero muy grande

[1] 10000000
> as.integer( 1e10 ) # No cabe en la definición de entero

Warning: NAs introduced by coercion to integer range
[1] NA

3.1.2. Redondeando

> 1/3

[1] 0.3333333
> options( digits = 3 )
> 1/3

[1] 0.333
> log( 2 ) # logaritmo natural base e

[1] 0.693
> 1e6 + 1

[1] 1e+06

# resultado entero?

3.1.3. Series

> 1:10

[1] 1 2 3 4
5
> seq( 0, pi, 0.1 )

6 7 8

9 10

[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8
[20] 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0 3.1

2

3.1.4. Valores no numéricos

> sqrt( -9 )

Warning in sqrt(-9): Se han producido NaNs
[1] NaN
> sqrt( as.complex( -9 ) ) # La raíz de un valor negativo

[1] 0+3i
> 1 / 0

[1] Inf
> log( -1 )

# No existe el logaritmo

Warning in log(-1): Se han producido NaNs
[1] NaN
> log( 0 )

[1] -Inf
> curve( log, 0, 100 ) # representación de la función logaritmo

3

02040608010001234xlog(x) 3.2. Textuales (string)
Los valores de texto facilitan manejar la información cualitativa o la producción de mensajes para una lectura
humanizada.
> "Casa"

[1] "Casa"
> "Casa" == "casa"

# Sensibilidad a mayúsculas

[1] FALSE
> paste ( "Casa", 1:10, sep = " número " )

"Casa número 2"
"Casa número 6"
"Casa número 10"

[1] "Casa número 1"
[5] "Casa número 5"
[9] "Casa número 9"
> # 1 + "1"
>
> # read.table( "http://www.um.es/docencia/emc/datos/biom2003.dat" )

# ¡No es posible!

"Casa número 3"
"Casa número 7"

"Casa número 4"
"Casa número 8"

4. Operadores

4.1. Operadores aritméticos
En R encontramos los operadores habituales: suma, restas, productos, cocientes y potencias (+, -, *, /, ˆ) a
los que se añaden otros menos conocidos como :, para generar series, o % % para conseguir el resto del cociente
entero, u operadores específicos para producto de matrices ( %* %). La jerarquía de la operación es también la
habitual y puede alterarse con el uso de paréntesis. Ante la duda es conveniente el uso de paréntesis.
> 3 ^ 2

# Operador potencia

[1] 9
> 10:1

[1] 10 9 8 7
> 3 + 2 * 5

[1] 13
> 1 / ( 2 * 5 )

[1] 0.1
> 1/ 2 / 5

[1] 0.1

# Operador de serie

6

5 4 3

2

1

# El producto tiene prioridad

# Cociente con numerador "forzado por paréntesis"

# El mismo cociente anterior

4.2. Jerarquía de operación

> 3 ^ 2

[1] 9

# Operador potencia

4

> 3 ^ 1 / 2

# La potencia tiene prioridad

[1] 1.5
> 3 + 2 * 5

[1] 13
> 1 / ( 2 * 5 )

[1] 0.1
> 1 / 2 / 5

[1] 0.1

# El producto tiene prioridad

# Cociente con numerador "forzado por paréntesis"

# El mismo cociente anterior

4.3. Operadores y series

> 2 ^ 0:8

# La potencia tiene prioridad

[1] 1 2 3 4 5 6 7 8
> 3 + 2 * 1:5

[1] 5 7 9 11 13
> 3 + ( 2 * 1 ):5

[1] 5 6 7 8
> 1:10 %% 2

# La serie tiene prioridad

# Alteramos la jerarquía

[1] 1 0 1 0 1 0 1 0 1 0

4.4. Operadores lógicos
La posibilidad de automatizar procedimientos requiere la evaluación lógica, para ellas se utilizan los operadores
lógicos, comparan entre dos expresiones

== !=: Igual a, distinto a
> >=: mayor, mayor o igual
< <=: menor, menor o igual
&: AND verdadero si ambas expresiones son ciertas
|: OR verdadero si al menos una de las expresiones es cierta
!: NOY operador de negación que afecta a una sola expresión

4.5.

Igual o distinto

> 3 == 2

# Comparación igualdad

[1] FALSE
> 5 != 4

[1] TRUE

# Comparación desigualdad

5

> 3 > 2

# Es mayor

# Negación

[1] TRUE
> ! 3 > 2

[1] FALSE
> ! TRUE

[1] FALSE

4.5.1. Operaciones con valores lógicos

> TRUE

[1] TRUE
> TRUE + 1

[1] 2
> FALSE + 1

[1] 1
> # ¿qué número es verdadero?
> as.logical( 1 )

[1] TRUE
> as.logical( 0 )

[1] FALSE

4.5.2.

¿Iguales?

> 0 != 0.0000000000000001 # ¿son iguales?

[1] TRUE
> 5 %% 2 != 0

[1] TRUE
> 3 > 2 & 5 %% 2 != 0

[1] TRUE
> 1:5 > 2

# ¿El resto de 5 entre dos es 0?

# Resultado OR de dos expresiones

# evaluación de un conjunto

[1] FALSE FALSE TRUE

TRUE

TRUE

5. Funciones

Las funciones podemos considerarlas como programas dentro del programa R; esencialmente están asociadas
a un nombre, que sigue las mismas reglas que cualquier objeto de R, y a un conjunto de argumentos, que son
propios de cada función.

6

> # nomreDeLaFuncion( argumento1, argumento1, ... )
> # argumento: expresión
> # plot( hclust( dist( swiss ), method = "mcquitty" ), hang = -1 )
El tabulador nos es útil tanto para completar el nombre de la función como dentro del paréntesis ya que
actúa como ayuda informando de los argumentos esperados.

5.1. Una función para conocerlas a todas

> help( swiss )

5.2. En la práctica
En muchas ocasiones no es necesario indicar más que alguno de los argumentos, lo que facilita el uso.
> log( 2 )

# logaritmo natural de 2

[1] 0.693
> log( 2, 10 )

[1] 0.301
> exp( 1 )

# logaritmo en base 10

# función exponencial

[1] 2.72
> log( exp( 1 ) ) # ¡¡¡Uno!!!

[1] 1

5.3. Nombres y orden de los argumentos

> log( x = 2, base = 10 ) # indicando el nombre de los argumentos

[1] 0.301
> log( base = 10, x = 2 ) # alterando el orden de los argumentos

[1] 0.301

5.4. Más sobre series

> seq( 0, 2, 0.1 )

[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8
[20] 1.9 2.0
> seq( from = 0, to = 2, by = 0.1 )

[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8
[20] 1.9 2.0

7

> seq( to = 2, by = 0.1, from = 0 )

[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8
[20] 1.9 2.0

5.5. Pero ¿cuántas funciones hay?
El número de funciones disponibles en R crece día a día, para buscar información:

Buscar funciones
Una estimación actualizada
¿Pero cuantas necesito conocer?

• No solo no necesitamos aprenderlas todas para usar R: ¡es imposible!
• Una “chuleta” de funciones: R reference card V2
• Documentación y el buscador no ayudarán mucho para localizar la funciones, y los procedimientos,

necesarios

6. Objetos en R

Las ventajas del uso de un lenguaje es la generalización de un procedimiento de cálculo y esto conlleva el uso
de variables que contienen los valores particulares de cada caso. Para utilizar una variable es necesario que se
asigne, anteriormente, un valor a ella, de lo contrario obtendremos un error como resultado que indica la
inexistencia de tal variable.
La asignación ser realiza mediante un operador específico y no debe leerse como igualdad:

<-: “asignar a la izquierda (dos caracteres)
->, “asignar a la derecha
=, “asignar a la izquierda

> x <- 3
>
> x

# creamos el objeto x
# que toma el valor de la expresión
# para conocer el valor de un objeto

[1] 3
> 1 / 5 -> y
> pi

[1] 3.14

# valor predefinido

6.1. Alternativas de asignación

> y <- 5 * 9 / 2
> "Carmolí" -> localidad
> n = 30
>
> ( m <- 25 ^ 2 )

# y toma el valor de la expresión de la derecha
# Asignación a la derecha
# asignación no recomendada

# evita tener que evaluar la expresión m

8

[1] 625
>

# para ver su contenido

6.2. La asignación es destructiva

> i <- 1
> i

# La última asignación el la que vale

[1] 1
> i <- i + 1
>
> ( i <- i + 1 ) # Aumentamos nuevamente el valor de i

# Aumentamos el valor de i

[1] 3

6.3. Aprovechando los objetos

# Guardando un valor lógico

> control <- TRUE
> solucion <- sqrt( as.complex( x ) ) # Previniendo valores negativos
>
> pesoIndividuo
<- 70
> longitudIndividuo <- 180
>
> indiceCorporal <- pesoIndividuo / longitudIndividuo

# buenos nombres de objetos

6.4. Aprovechando más los objetos

<- c( 110, 100, 125 ) # g: gramos

> pesoIndividuo
> longitudIndividuo <- c( 100, 105, 110 ) # mm: milímetros
>
> indiceCorporal <- pesoIndividuo /
+
Los nombres de los objetos son un conjunto de caracteres, el primero una letra; las letras permitidas son las
del alfabeto inglés; pueden utilizarse las cifras de 0 a 9, y opcionalmente el punto (.) o la barra baja (_), si
bien no son muy recomendables. Debe evitarse que el nombre pueda ser interpretado como una expresión, ya
que R devolverá un error.

longitudIndividuo # lectura mejorada de expresiones

6.5. Vectores
La potencia de los lenguajes es el uso de conjuntos de valores ordenados, a esto los llamamos vectores; en
ellos podemos guardar cualquier tipo de valor pero todos deber ser del mismo tipo.
Habitualmente, los conjuntos de datos grandes se almacenan en fichero de datos, pero,
  • Links de descarga
http://lwp-l.com/pdf13646

Comentarios de: R como instrumento de trabajo - La sintaxis de R en la práctica (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad