Introducción al uso de R.
Aprender a hablar
Fernando Cánovas García
[email protected]
Universidad de Murcia
¿Qué es?
• Implementación de S
Un conjunto de instrumentos
Un conjunto de utilidades gráficas
Desarrollar la imaginación
Un lenguaje
¡No lo necesito!
•La capacidad de combinar análisis predeterminados
con análisis específicos
•Los gráficos son de alta calidad
•La comunidad de R es muy dinámica
•Desarrolla extensiones específicas de áreas nuevas
•Se trata de un lenguaje orientado a objetos
•No son necesarios conocimientos previos en lenguajes
de programación
•Libre distribución
•....
¡Lo necesito!
• Depende del sistema operativo, pero todo se
puede encontrar en:
http://cran.r-project.org/
– Windows
– GNU/Linux
– Mac
¿Sólo un programa?
• Filosofía de trabajo
• Propuesta de trabajo:
– Estructura de un fichero de trabajo
– Editor de textos
– Consola de R
– Navegador de ayuda
– Ventanas con el producto
– Procesador de textos
Análisis
Datos
Funciones
Gráficos
Resultados
¡Tendrás que pagar!
• Saber lo que quieres
• Saber lo que necesitas
• Saber lo que haces
• Aprender
• Teclear comandos
Una sesión de trabajo
• Iniciar el programa sobre la carpeta de trabajo:
– Tecleando R en la ventana de comandos
– Desde el “Inicio” (no olvidar donde trabajar)
• ¿Que vemos?
>
• ¿Puedo hablarle?
>orden1(parámetro 1,parámetro 2); orden2(parámetro 1,parámetro 2)
Salir y ayudas
• Mi primera palabra: salir
>q()
• Pedir ayuda:
>help(mean)
>apropos(mean)
>help.start()
Operando con R
• Calculadora:
> 2+3
[1] 5
• Guardar un resultado:
> 2+3->suma
> suma
[1] 5
> suma.2<-1+9
> suma.2
[1] 10
Operando con R
> suc<-1:9
> suc
[1] 1 2 3 4 5 6 7 8 9
> mean(suc)
[1] 5
> suc[1]
[1] 1
> suc[5]
[1] 5
> suc[5]*3
[1] 15
> suc*3
[1] 3 6 9 12 15 18 21
24 27
Información:
>data()
>ls()
>ls.str()
>search()
Para relajarnos:
>demo(graphics)
>example(plot)
Objetos:
>rm()
>rm(list=ls(all=T))
>fix()
Tipos de objetos
Constantes o variables:
número, carácter
(reseñado entre comillas: “hola”) o cálculo
guardado con un determinado nombre:
>a<-1
>a
[1] 1
>b<-“hola”
>b
[1] “hola”
> b=="hola"
[1] TRUE
> b!="hola"
[1] FALSE
Tipos de objetos
Vectores: asignando a una variable un conjunto
de valores numéricos, lógicos o caracteres:
>x<-c(1,33,45,75,34)
>x
[1] 1 33 45 75 34
>y<-c(“H“,“I“,“O“)
>y
[1] “H“ “I“ “O“
Tipos de objetos
Funciones: la mayor parte del trabajo en R
implica su uso:
>max(x)
[1] 75
Tipos de objetos
Series de tiempo: La función ts crea un objeto
de clase "ts" (serie de tiempo) a partir de un
vector (serie de tiempo única) o una matriz
(serie multivariada)
Tipos de objetos
Array: vector con atributo de dimensión
Matriz: array de dos dimensiones
Lista: conjunto de elementos que pueden ser
de distintos tipos
Marco de datos: „data frame“, mezcla de
matriz y lista
Tipos de objetos
Matrices: un vector con un atributo (dim) el
cual es un vector numérico de longitud 2:
Lectura desde R:
> data()
> data(iris)
> iris
> fix(iris)
Tipos de objetos
Factor: valores de una variable categórica y los
niveles
> iris$Species
> levels(iris$Species)
Matrices
• Dimensiones de una matriz:
> dim(iris)
[1] 150 5
> ncol(iris)
[1] 5
> nrow(iris)
[1] 150
• Nombre de las filas y columnas:
> colnames(iris)
> rownames(iris)
Matrices
• Dispone de dos subíndices para la fila y la
columna:
> iris[,] o iris
> iris[1,]
> iris[,1]
> iris[1:3,2:3]
#Toda la matriz
#Primera fila
#Primera columna
#Submatriz
Introducción al uso de R.
Manipulación de datos
Fernando Cánovas García
[email protected]
Universidad de Murcia
read.table(file, header = FALSE, sep = "", quote = "\"’", dec = ".",
row.names, col.names, as.is = FALSE, na.strings = "NA",
colClasses = NA, nrows = -1, skip = 0, check.names = TRUE, fill =
!blank.lines.skip, strip.white = FALSE, blank.lines.skip = TRUE,
comment.char = "#")
file
header
sep
quote
dec
row.names
col.names
as.is
na.strings
colClasses
nrows
skip
check.names
fill
strip.white
blank.lines.skip
comment.char
el nombre del archivo (entre “” o como una variable de tipo carácter), posiblemente con su
dirección si se encuentra en un directorio diferente al de trabajo o una dirección remota al archivo
tipo URL (http://...).
una variable lógica (FALSE (falso) o TRUE (verdadero)) indicando si el archivo contiene el
nombre de las variables en la primera fila o línea
el separador de campo usado en el archivo; por ejemplo sep="\t" si es una tabulación
los caracteres usados para citar las variables en modo carácter
el carácter usado para representar el punto decimal
un vector con los nombres de las líneas de tipo carácter o numérico (por defecto: 1, 2, 3, . . . )
un vector con los nombres de las variables (por defecto: V1, V2, V3, . . . )
controla la conversión de variables tipo carácter a factores (si es FALSE) o las mantiene como
carácteres (TRUE); as.is puede ser un vector lógico o numérico que especifique las variables que
se deben mantener como caracteres
el valor con el que se codifican datos ausentes (convertido a NA)
un vector de caracteres que proporciona clases para las columnas
el número máximo de l´ýneas a leer (se ignoran valores negativos)
el número de líneas ignoradas antes de leer los datos
si es TRUE, chequea que el nombre de las variables sea válido para R
si es TRUE y todas las filas no tienen el mismo número de variables, agrega “blancos”
(condicional a sep) si es TRUE, borra espacios extra antes y despues de variables tipo carácter
si es TRUE, ignora líneas en “blanco”
un carácter que define comentarios en el archivo de datos; líneas que comienzen con este carácter
son ignoradas en la lectura (para desactivar este argumento utilize comment.char =“”)
Variables
• Construimos una matriz y la cargamos:
> read.table(“curso.txt”,header=T,row.names=“muest”)->curso
> curso
> data (iris);iris
> attach(iris)
> names(iris)
> Sepal.Length
> detach(iris)
> Sepal.Length
> iris$Sepal.Length
#Independizar las variables
#Nombre de las variables
#Selección
#Reunir la matriz
#No funciona
# Selección
Tipos de variables
• Cuantitativa: es un vector
– Discreta
– Continua
• Cualitativa: es un factor
– Nominal
– Ordinal
Manejo de datos
#Redondear
#Invertir
#Ordenar de menor a mayor
#Ordenar de mayor a menor
#Alinear
> round(iris$Sepal.Length,0)
> rev(iris$Sepal.Length)
> sort(iris$Sepal.Length)
> rev(sort(iris$Sepal.Length))
> rank(iris$Sepal.Length)
> cbind(iris$Sepal.Length,rank(iris$Sepal.Length))
> log(iris$Sepal.Length,10)
> scale(iris$Sepal.Length)
#Logaritmo
#Escalar
Manejo de datos
#Sumatorio acumulado
#Comparación
#Diferentes selecciones
> cbind(iris$Sepal.Length,scale(iris$Sepal.Length))
> cumsum(iris$Sepal.Length)
> match(iris$Species,”versicolor”)
> iris$Species %in% “versicolor”
> iris[iris$Species %in% “versicolor”,]
> iris[match(iris$Species,”versicolor”),]
> which(iris$Sepal.Length>6)
> iris[which(iris$Sepal.Length>6),]
> table(iris$Species)
Manejo de datos
> levels(iris$Species)
> sample(iris$Species,5)
> iris[sample(iris$Species,5),]
> t(iris)
> paste(”Iris”, iris$Species)
> paste(iris$Sepal.Width,iris$Sepal.Length,sep=“+”)
> split(iris$Sepal.Length,iris$Species)
#Dividir
> sapply(split(iris$Sepal.Length,iris$Species),mean)
#Niveles de un factor
#Repetir varias veces
#Repetir varias veces
#Transponer
#Unir
Realizar cálculos
#Sumatorio
#Producto
#Máximo
#Mínimo
#Rango
> sum(iris$Sepal.Length)
> prod(iris$Sepal.Length)
> max(iris$Sepal.Length)
> min(iris$Sepal.Length)
> range(iris$Sepal.Width)
> range(iris$Sepal.Length)
> which.max(iris$Sepal.Length)
> iris[which.max(iris$Sepal.Length),]
> which.min(iris$Sepal.Width)
> iris[which.min(iris$Sepal.Width),]
#Selección condicionada
Realizar cálculos
#Longitud
#Media
> length(iris$Sepal.Length)
> mean(iris$Sepal.Length)
> mean(iris$Sepal.Width)
> median(iris$Sepal.Length)
> median(iris$Sepal.Width)
> var(iris$Sepal.Length)
> sd(iris$Sepal.Length)
> cor(iris$Sepal.Length,iris$Sepal.Width)
> cov(iris$Sepal.Length,iris$Sepal.Width) #Covarianza
#Mediana
# Varianza
#Desviación estándar
#Correlación lineal
Introducción al uso de R.
Programación
Fernando Cánovas García
[email protected]
Universidad de Murcia
Ejecución condicional: if() {...} else() {...}
• Varias órdenes necesario encerrarlas entre corchetes
>x<-5
>if (x>10) print("mayor") else print("menor")
[1] "menor"
>x<-15
>if (x>10) print("mayor") else print("menor")
[1] ”mayor"
>if (x>10) {print("mayor"); print(sprintf("x vale %f",x))} else print("menor")
[1] "mayor"
[1] "x vale 15.000000"
Órdenes for, repeat y while
• for (i in m) función: ejecuta la función para
cada valor i en un objeto m
>for (i in 1:10) sprintf("i vale %i ",i)
• Si no le indicamos la orden print() no imprime las
salidas.
>for (i in 1:10) print(sprintf("i vale %i ",i))
Órdenes for, repeat y while
• El campo de variación del índice se ha de
encerrar entre paréntesis
>for (i in c(4,7,2)) print(sprintf("i vale %f ",i))
Órdenes for, repeat y while
• while(icond) función: ejecuta la función
mientras el valor i cumpla la condición
>i <- 1
>while (i<20) {print("hola"); i<-i+1}
Órdenes for, repeat y while
• repeat {f1;f2;...;i<-i+1; if(icond) break else
next}: repite la función para cada valor i que
cambia, y la condición de i me define
cuando terminará
>i <- 1
>repeat {print("hola"); i<-i+1; if (i>20) break else next}
function
• Además R permite crear funciones, que una
vez cargadas, podemos ejecutar cuanto
queramos y en otras situaciones con datos
diferentes
• Ganamos
rapidez y
homogeneidad en el análisis y presentación
en
comodidad,
function
• La sintaxis es sencilla:
nombre.de.la.función<-function(a,b,....){función}
• Donde a, b, ..., son los parámetros que
pedimos o introducimos para realizar la
función
function
>suma<-function(a,b) {c<-a+b;print(c)}
>suma(3,5)
• Si queremos saber como es la función que genera
Comentarios de: Introducción al uso de R (0)
No hay comentarios