Explicación del lenguaje de programación R

R es un entorno de software y lenguaje de programación de código abierto para gráficos y computación estadística. Es uno de los lenguajes principales utilizados por científicos de datos y estadísticos por igual. Cuenta con el apoyo de la Fundación R para Computación Estadística y una gran comunidad de desarrolladores de código abierto. Dado que R utilizó una interfaz de línea de comandos, puede haber una curva de aprendizaje pronunciada para algunas personas que están acostumbradas a usar programas centrados en GUI como SPSS y SAS, por lo que las extensiones de R como RStudio pueden ser muy beneficiosas. Dado que R es un programa de código abierto y de libre acceso, puede haber un gran atractivo para los académicos cuyo acceso a los programas estadísticos está regulado a través de su asociación a varios colegios o universidades.

Instalación

Lo primero que necesita para comenzar con R es descargarlo de su sitio oficial de acuerdo con su sistema operativo.

Herramientas y paquetes R populares

  • RStudio es un entorno de desarrollo integrado (IDE) para R. Incluye una consola, un editor de resaltado de sintaxis que admite la ejecución directa de código, así como herramientas para el trazado, el historial, la depuración y la gestión del espacio de trabajo.
  • Comprehensive R Archive Network (CRAN) es una fuente líder de herramientas y recursos de R.
  • Tidyverse es una colección obstinada de paquetes R diseñados para ciencia de datos como ggplot2, dplyr, readr, tidyr, purr, tibble.
  • data.table es una implementación de base data.frameenfocada en un rendimiento mejorado y una sintaxis flexible y concisa.
  • Marco brillante para crear aplicaciones web de estilo tablero en R.

Tipos de datos en R

Vector

Es una secuencia de elementos de datos del mismo tipo básico. Por ejemplo:

> o  p  q  o;p;q [1] 1.0 2.0 5.3 6.0 -2.0 4.0 [1] "one" "two" "three" "four" "five" "six" [1] TRUE TRUE FALSE TRUE FALSE

Matriz

Es un conjunto de datos rectangular bidimensional. Los componentes de una matriz también deben ser del mismo tipo básico que el vector. Por ejemplo:

> m = matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow = TRUE) > m >[,1] [,2] [,3] [1,] "a" "a" "b" [2,] "c" "b" "a"

Marco de datos

Es más general que una matriz, ya que diferentes columnas pueden tener diferentes tipos de datos básicos. Por ejemplo:

> d  e  f  mydata  names(mydata)  mydata

Liza

Es un objeto R que puede contener muchos tipos diferentes de elementos dentro de él, como vectores, funciones e incluso otra lista dentro de él. Por ejemplo:

> list1  list1 [[1]] [1] 2 5 3 [[2]] [1] 21.3 [[3]] function (x) .Primitive("sin")

Funciones en R

Una función le permite definir un bloque de código reutilizable que se puede ejecutar muchas veces dentro de su programa.

Las funciones se pueden nombrar y llamar repetidamente o se pueden ejecutar de forma anónima en el lugar (similar a las funciones lambda en Python).

El desarrollo de una comprensión completa de las funciones de R requiere la comprensión de los entornos. Los entornos son simplemente una forma de administrar objetos. Un ejemplo de entornos en acción es que puede usar un nombre de variable redundante dentro de una función, que no se verá afectado si el tiempo de ejecución más grande ya tiene la misma variable. Además, si una función llama a una variable no definida dentro de la función, verificará el entorno de nivel superior para esa variable.

Sintaxis

En R, una definición de función tiene las siguientes características:

  1. La palabra clave function
  2. un nombre de función
  3. parámetros de entrada (opcional)
  4. algún bloque de código para ejecutar
  5. una declaración de devolución (opcional)
# a function with no parameters or returned values sayHello() = function(){ "Hello!" } sayHello() # calls the function, 'Hello!' is printed to the console # a function with a parameter helloWithName = function(name){ paste0("Hello, ", name, "!") } helloWithName("Ada") # calls the function, 'Hello, Ada!' is printed to the console # a function with multiple parameters with a return statement multiply = function(val1, val2){ val1 * val2 } multiply(3, 5) # prints 15 to the console

Las funciones son bloques de código que se pueden reutilizar simplemente llamando a la función. Esto permite la reutilización de código simple y elegante sin volver a escribir explícitamente secciones de código. Esto hace que el código sea más legible, facilita la depuración y limita los errores de escritura.

Las funciones en R se crean usando la functionpalabra clave, junto con un nombre de función y parámetros de función entre paréntesis.

La return()función puede ser utilizada por la función para devolver un valor, y normalmente se utiliza para forzar la terminación anticipada de una función con un valor devuelto. Alternativamente, la función devolverá el valor impreso final.

# return a value explicitly or simply by printing sum = function(a, b){ c = a + b return(c) } sum = function(a, b){ a + b } result = sum(1, 2) # result = 3

También puede definir valores predeterminados para los parámetros, que R utilizará cuando no se especifique una variable durante la llamada a la función.

sum = function(a, b = 3){ a + b } result = sum(a = 1) # result = 4

También puede pasar los parámetros en el orden que desee, utilizando el nombre del parámetro.

result = sum(b=2, a=2) # result = 4

R también puede aceptar parámetros opcionales adicionales con '…'

sum = function(a, b, ...){ a + b + ... } sum(1, 2, 3) #returns 6

Las funciones también se pueden ejecutar de forma anónima. Estos son muy útiles en combinación con la familia de funciones 'aplicar'.

# loop through 1, 2, 3 - add 1 to each sapply(1:3, function(i){ i + 1 })

Notas

Si la definición de una función incluye argumentos sin valores predeterminados especificados, se deben incluir los valores para esos valores.

sum = function(a, b = 3){ a + b } sum(b = 2) # Error in sum(b = 2) : argument "a" is missing, with no default

Las variables definidas dentro de una función solo existen dentro del alcance de esa función, pero verificarán un entorno más grande si no se especifica la variable

double = function(a){ a * 2 } double(x) # Error in double(x) : object 'x' not found double = function(){ a * 2 } a = 3 double() # 6

Funciones integradas en R

  • R viene con muchas funciones que puede usar para realizar tareas sofisticadas como muestreo aleatorio.
  • Por ejemplo, puede redondear un número con round(), o calcular su factorial con factorial().
> round(4.147) [1] 4 > factorial(3) [1] 6 > round(mean(1:6)) [1] 4
  • Los datos que pasa a la función se denominan argumento de la función.
  • You can simulate a roll of the die with R’s sample()function. The sample() function takes two arguments:a vector named x and a number named size. For example:
> sample(x = 1:4, size = 2) [] 4 2 > sample(x = die, size = 1) [] 3 >dice dice [1] 2 4 >sum(dice) [1] 6
  • If you’re not sure which names to use with a function, you can look up the function’s arguments with args.
> args(round) [1] function(x, digits=0)

Objects in R

R allows to save the data by storing it inside an R object.

What’s an object?

It is just a name that you can use to call up stored data. For example, you can save data into an object like a or b.

> a  a [1] 5

How to create an Object in R?

  1. To create an R object, choose a name and then use the less-than symbol, <, followed by a minus sign, -, to save data into it. This combination looks like an arrow, <-. R will make an object, give it your name, and store in it whatever follows the arrow.
  2. When you ask R what’s in a, it tells you on the next line. For example:
> die  die [1] 1 2 3 4 5 6
  1. You can name an object in R almost anything you want, but there are a few rules. First, a name cannot start with a number. Second, a name cannot use some special symbols, like ^, !, $, @, +, -, /, or *:
  2. R also understands capitalization (or is case-sensitive), so name and Name will refer to different objects.
  3. You can see which object names you have already used with the function ls().

More Information:

  • Learn R programming language basics in just 2 hours with this free course on statistical programming
  • An introduction to web scraping using R
  • An introduction to aggregates in R: a powerful tool for playing with data