A una variable se le puede asignar un valor empleando el símbolo = o <-. Ejemplo:
variable = 5
variable <- 5
variable=TRUE
variable="Este es un texto"
Para mostrar un resultados, texto o cualquier contenido asociado a una variable se puede usar los comandos print o cat. Por ejemplo:
variable = 5
print(variable)
## [1] 5
print("Mostrando un mensaje en la consola")
## [1] "Mostrando un mensaje en la consola"
cat("\nEste mensaje incluye un salgo de linea")
##
## Este mensaje incluye un salgo de linea
cat("\t Este mensaje incluye una tabulación al comenzar")
## Este mensaje incluye una tabulación al comenzar
cat(paste("El valor de variable es:",variable))
## El valor de variable es: 5
Los comentarios se efectúan empleando el símbolo #.
# Este es un comentario
variable = 5 #Este también es un comentario
R dispone de muchas funcionalidades que no se encuentran originalmente en su versión base, pero que sí puedes ser usadas desde diferentes bibliotecas complementarias. Para instalar una biblioteca es necesario utilizar el comando install.packages(“biblioteca”). Por ejemplo, si se desea instalar la biblioteca para gráficos avanzados denominado ggplot2, se debe utilizar el siguiente comando.
install.packages("ggplot2")
library("ggplot")
Las siguientes ejemplos muestran diferentes operaciones matemáticas:
v1=180
v2=50
suma = v1 + v2
suma
## [1] 230
multiplicacion = v1 * v2
multiplicacion
## [1] 9000
division = v1/v2
division
## [1] 3.6
vlog10 = log10(v1)
vlog10
## [1] 2.255273
raiz = sqrt(v1)
raiz
## [1] 13.41641
sinrad = sin(v1)
sinrad
## [1] -0.8011526
singrad = sin(v1*pi/180)
singrad
## [1] 1.224647e-16
#el 2 indica la cantidad de digitos
aproximar = round(sinrad,2)
aproximar
## [1] -0.8
Los vectores permiten agrupar elementos de un mismo tipo. Para crearlos se debe utilizar la función combinar c(). Por ejemplo:
vector = c(2, 4, 6, 8, 10)
vector
## [1] 2 4 6 8 10
Puede acceder a los elementos de cada vector utilizando un índice [i].
vector[5] = 12
vector
## [1] 2 4 6 8 12
Una matriz puede ser creada utilizando la función matrix o c. Empleando ncol y nrow es posible definir el número de filas y columnas. Ejemplo:
datos=matrix(c(6.2,3.4,5.1,7.2,5.3,50.3,33.2,45.3,60.3,47.8),nrow=5,ncol=2)
datos
## [,1] [,2]
## [1,] 6.2 50.3
## [2,] 3.4 33.2
## [3,] 5.1 45.3
## [4,] 7.2 60.3
## [5,] 5.3 47.8
Se puede asignar nombres a filas y columnas utilizando los comandos colnames y rownames.
colnames(datos)=c("peso(Kg)","talla(cm)")
rownames(datos)=c("JAVIER","MIGUEL","KATHERINE","ANDREA","MOISES")
datos
## peso(Kg) talla(cm)
## JAVIER 6.2 50.3
## MIGUEL 3.4 33.2
## KATHERINE 5.1 45.3
## ANDREA 7.2 60.3
## MOISES 5.3 47.8
Para efectuar operaciones matriciales dispone de varias sentencias, por ejemplo:
datos=matrix(c(6.2,3.4,5.1,7.2,5.3,50.3,33.2,45.3,60.3),nrow=3,ncol=3)
print(datos) #Permite visualizar la matriz
## [,1] [,2] [,3]
## [1,] 6.2 7.2 33.2
## [2,] 3.4 5.3 45.3
## [3,] 5.1 50.3 60.3
t(datos) #Genera la matriz transpuesta
## [,1] [,2] [,3]
## [1,] 6.2 3.4 5.1
## [2,] 7.2 5.3 50.3
## [3,] 33.2 45.3 60.3
datos*datos #Corresponde a la multiplicación elemento por elemento
## [,1] [,2] [,3]
## [1,] 38.44 51.84 1102.24
## [2,] 11.56 28.09 2052.09
## [3,] 26.01 2530.09 3636.09
datos%*%(datos) #Corresponde a multiplicación matricial
## [,1] [,2] [,3]
## [1,] 232.24 1752.76 2533.96
## [2,] 270.13 2331.16 3084.56
## [3,] 510.17 3336.40 6084.00
det(datos) #Calcula el determinante
## [1] -7178.06
solve(datos) #Calcula la matriz inversa
## [,1] [,2] [,3]
## [1,] 0.272914966 -0.17216351 -0.020924874
## [2,] -0.003623542 -0.02849516 0.023401866
## [3,] -0.020059738 0.03833069 -0.001167446
diag(datos) #Calcula la diagonal de la matriz
## [1] 6.2 5.3 60.3
Las listas permiten agrupar elementos de diversas características. Para utilizarlas se debe emplear la función list.
lista = list(nombre="diplodocus", genero="Saurópodos diplocínidos",
antiguedad="150 Millones de años", largo_m=c(31.0, 36.5, 35.0, 20, 40))
Para acceder a los atributo de una lista utilice el comando attributes.
attributes(lista)
## $names
## [1] "nombre" "genero" "antiguedad" "largo_m"
También puede acceder o modificar los valores de una lista utilizando el símbolo $.
lista$nombre = "Brachiosaurus";
lista$genero = "Saurópodos braquiosáuridos"
lista$largo_m[c(1,2,3,4,5)] = 25
lista
## $nombre
## [1] "Brachiosaurus"
##
## $genero
## [1] "Saurópodos braquiosáuridos"
##
## $antiguedad
## [1] "150 Millones de años"
##
## $largo_m
## [1] 25 25 25 25 25
Es posible la creación de tablas usando una estructura llamada data.frame. A modo de ejemplo, la siguiente tabla describe si algunas marcas de cereales en nuestro país contienen ingredientes transgénicos (Revista el Punto Final 2004).
marcas=c("BIOCENTURY","EL-GRANERO-INTEGRAL","GRANOVITA","PAGESA",
"INTEGRAL-ESPIGAS","PASCUAL","SOJIVIT","HIPP","NUTREXPA",
"NESTLÉ","KELLOGGS")
productos=c("Bicentury","Todos","Todos","Diet_Rádisson","Todos",
"Pascual/Essential/MásVital/ViveSoy","Todos","Todos","Cola-Cao",
"Chocapic/Fitness/Fibre1/Estrellitas/Golden-Grahams/Crunch/Cheerios"
,"Todos")
trans=c("NO","NO","NO","NO","NO","NO","NO","NO","NO","SI","SI");
cereales = data.frame(marcas=marcas,produtos=productos,transgenicos=trans)
head(cereales)
## marcas produtos transgenicos
## 1 BIOCENTURY Bicentury NO
## 2 EL-GRANERO-INTEGRAL Todos NO
## 3 GRANOVITA Todos NO
## 4 PAGESA Diet_Rádisson NO
## 5 INTEGRAL-ESPIGAS Todos NO
## 6 PASCUAL Pascual/Essential/MásVital/ViveSoy NO
Este tipo de datos se puede almacenar en formato de texto con extensión .csv o .xls. Para ello se puede utilizar el comando write.table, donde el parámetro row.names= FALSE omite el uso de índices, quote evita que los números sean guardados en formato de texto, dec señala que el punto decimal será una coma y sep establece ; como carácter de separación.
write.table(cereales,"cereales.csv", row.names = FALSE , quote = FALSE, dec = ",", sep = ";",fileEncoding = "latin1")
nueva_tabla=read.table("cereales.csv", header = TRUE, sep = ";")
saveRDS(cereales, file = "cereales.Rdata")
rep_tabla= readRDS("cereales.Rdata")
Se utiliza para comprobar una condición. Si ésta última es verdadera entonces se ejecuta determinada sentencia. En caso contrario, else, se realizará una sentencia diferente. Ejemplo:
mfARI = sample(1:9,1) #Crea un entero aleatorio entre 1 y 9
if (mfARI>=5) {
print("El paciente tiene una autorregulación cerebral normal")
} else {
print("El paciente tiene una autorregulación cerebral dañada")
}
## [1] "El paciente tiene una autorregulación cerebral dañada"
Implementa un bucle repitiendo un grupo de sentencias un número determinado de veces. Ejemplo:
for(i in 1:6) {
print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
Permite ejecutar repetidamente un bloque mientras una condición sea verdadera. Ejemplo:
i = 1 #declara variable
while(i<=6){
print(i)
i=i+1
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
La capacidad de crear funciones propias es fundamental para estudios futuros y la optimización de código. Una función en R se define de la siguiente manera: nombre=function{arg1,arg2,…}{expresion}
Cree un nuevo script usando FILE->NEW FILE->R-SCRIPT (CONTROL+SHIFT+N). Desarrolle una función como la definida en el siguiente ejemplo y posteriormente guarde el archivo con el nombre sumar_num.R
#Definición de función
sumar_num = function(x,y) {
resultado=x+y
return(resultado)
}
A continuación se utilizará la consola de R/RStudio. Una buena práctica antes de cargar su script es la de eliminar las variables usadas anteriormente que no son de utilidad. El comando “ls()” permite chequear la tarea anterior.
rm(list=ls(all=TRUE)) #borra todas las variables en memoria
ls()
## character(0)
Posteriormente, si trabaja en RStudio puede cargar su función seleccionando en el menú FILE->OPEN FILE. Seleccione su archivo.R y en la ventana correspondiente presione RE-RUN (CRTL+SHFT+P). Si desea utilizar la consola de R base (también de RStudio) utilice la siguiente sentencia:
source("sumar_num.R") #Revisar que el archivo se encuentre en la carpeta de trabajo
ls() #Lista todas las variables en memoria
## character(0)
#Prueba de función
res_sum = sumar_num(4,3)
res_sum
res_sum2 = sumar_num(c(2,3),c(3,8))
res_sum2
res_sum3 = sumar_num(matrix(c(1,1,1,1),nrow=2,ncol=2),matrix(c(2,2,2,2),nrow=2,ncol=2))
res_sum3