Ideas generales(!) +ibrerías" library%& %librerías gardadas& searc'%& %librerías cargadas& library%pepita& carga la librería pepita detac'%pepita& descarga la librería pepita ,so de la ayda"
en P-.o 'tml$ 'elp%&$/$ apropos%&$ example%&
-irectorio de trabajo" get0d%&$ set0d%&$ y en men1s Guardar y recuperar el trabajo de una sesión: Save workspace imagen ? (crea .Rdata .Ristory en workdirectory! Saveistory(! loadistory(! "ambi#n en men$s. %dem&s en men$s 'save to ile) guarda el contenido de la consola entera tal cual la vemos en pantalla en t*t.
options( ! para ver y modiicar las opciones generales durante una sesión+ por ej.
Ideas generales(") 2 símbolo %o prompt & del sistema 3 indica orden incompleta 4 separa órdenes en la misma línea $ separa los argmentos entre par5ntesis 6 es el símbolo tili(ado para los comentarios 78 ó 9 operadores para asignación R distinge may1sclas y min1sclas .lec'as #erticales del teclado ( ↑ y ↓ ) recorren el 'istorial de ordenes .lec'as 'ori(ontales (← y → ) permiten el mo#imiento dentro de la línea
#ipos de o$etos ●
●
●
●
●
●
●
:ector %nm5rico$ carácter$ lógico& Matrices y arrays %nm5rico$ carácter$ lógico& .actores %nominales y ordinales& +istas ;ojas de datos %data
%aneo de datos & o$etos ●
●
●
●
ls%& relación de objetos disponibles en el entorno glo#al %>& ó %library">>& r elación de objetos disponibles en la librería >>>>> r m% >> & para borrar objetos >>< rm%list9ls%&& borra todos< data%& relación de todas las 'ojas de datos %data
●
data%pac=age9 >> & relación de los data
●
data%pepita& carga en la memoria en so el objeto pepita
●
●
attac'%pepita& permite trabajar con los elementos de pepita sin nombrar a pepita dattac'%pepita& #el#e a nir los componentes de pepita
'ectores (1) :ector es na colección ordenada de elementos< +os #ectores peden ser nm5ricos$ carácter$ lógicos%contienen TR,Es y?o .*+)Es$ T y?o .&< @reación de #ectores" c% & $ rep$ se!$ resltado de operaciones matemáticas ó lógicas$ resltado de ejectar fnciones$ etc Eemplos:
Otras operaciones con #ectores max$ min$ range$ mean$ #ar$ sm$ prod$ 0'ic'
●
Operaciones comparati#as y lógicas 7$ 2$ 79$ 29$ 99$ 9 $ $ $ J$ xor%& y los parecidos $ JJ
●
Generación de secencias reglares se!$ "$ rep
*lgunas +unciones $sicas (1) sm%x& sma de los elementos de x prod%x& prodcto de los elementos de x max%x& #alor máximo en el objeto x min%x& #alor mínimo en el objeto x 0'ic'
#ar%x& o co#%x& #arian(a de los elementos de x %calclada en n8A&4 si x es na matri( o n marco de datos$ se calcla la matri( de #arian(a8co#arian(a cor%x& matri( de correlación de x si es na matri( o n marco de datos %A si x es n #ector& #ar%x$ y& o co#%x$ y& co#arian(a entre x e y$ o entre las colmnas de x e y si son matrices o marcos de datos cor%x$ y& correlación lineal entre x e y$ o la matri( de correlación si x e y son matrices o marcos de datos c'oose%n$ =& calcla el n1mero de combinaciones de k e#entos en n repeticiones 9 n?%n8k &k F gamma%n3A& calcla n
*lgunas +unciones $sicas (!) pmin%x$y$<<<& n #ector en el !e el i a#o elemento es el mínimo de xiF$ yiF$ < < pmax%x$y$<<<& igal !e el anterior pero para el máximo cmsm%x& n #ector en el !e el i a#o elemento es la sma desde xAF a xiF cmprod%x&$ cmmin%x&$ cmmax%x& igal !e el anterior pero para el prodcto$ el mínimo y el máximo respecti#amente< 0'ic'%x 99 a& de#el#e n #ector de los índices de x si la operación es %TR,E& %en este ej< los #alores de i para los cales xiF 99 a& < El argmento debe ser na #ariable de tipo lógico na
table%x& de#el#e na tabla con el n1mero de diferentes #alores de x %típicamente para enteros o factores& sort%x& ordena los elementos de x en orden ascendente4 para 'acerlo en orden descendente" re#%sort%x&& order%x& ran=%x& de#el#e n #ector con los rangos de los elementos de x rond%x$ n& redondea los elementos de x a n cifras decimales ceiling%& floor%& trnc%& Ejemplos" rond%C
floor%C
ciling%C
'ectores (,): elección & modi+icación de su$ectores vector
vector de /ndices 0
vector vector de /ndices 0 45
1l vector de /ndices puede ser: ➔
n$meros naturales c( + + + ...!+ se2( !+ ...
➔
n$meros enteros negativos (elementos a e*cluir!
➔
vector lógico: se seleccionan los elementos 2ue coinciden con "R31
vector de caracteres cuando emos puesto previamente nombres a los elementos del vector ➔
1ejmplo: *455-:5-+ 56+ 7+ 6+ names(*!45letters6:80 * a b c d e 5- 56 7 6 -
*c(-+9!0
56+ 6
*6:0
5-+ 56+ 7
*5c(-+9!0
5-+
**;70
6+ -
*c('a)+)d)!0
7+ 5- + 6
-
%atrices (1) Matri(882 colección de elementos ordenados con dos secencias de índices @reación" ➢
matrix% #ector $ ncol9
$ nro09
$ byro09 T ó . &
➢
-otando de dimensión a n #ector" dim%&
➢
,niendo #ectores o matrices por colmnas o filas" cbind% $ $ & rbind% $ $ $ & Ejemplos"
%atrices (!): ustración & sustitución de elementos Matri( blanco o #ector $ blanco o #ector F Matri( blanco o #ector $ blanco o #ector F 78 Ejemplos" *A$BF
882 extrae elemento de la fila A y la colmna B
* $BF 882 extrae la colmna B *A$ F 882 extrae la fila A *A"C$ F
882 extrae las filas A$ B y C
* *7N F 882 extrae donde la condición lógica *7N es TR,E * *7N F78N 882 sstitye los #alores negati#os por ceros *WpepitaX$ F 882 extrae la fila con nombre pepita dentro de *
%atrices (") dimnames% matri( & para asignar nombres a las filas y colmnas de la matri( colnames% matri( & para asignar nombres colmnas de la matri( ro0names%matri( & para asignar nombres filas de la matri( Ejemplo" *78matrix%A"D$ ncol9B& dinnames%*&78list%c%Wfila>AX$ Wfila>BX& $ c%Wcol>AX$ Wcol>BX&& e!i#ale a colnames%*&78 c%Wcol>AX$ Wcol>BX& ro0names%*&78 c%Wfila>AX$ Wfila>BX&
col% *& y ro0% *& crean na matri( de índices indicando la colmna o la fila$ respecti#amente
peraciones con matrices A 3 $ A – $ A K $ A / " sma $ diferencia$ prodcto y di#isión elemento a elemento A %K " prodcto de matrices
t% *& " transpesta de la matri( * sol#e% *$b& " solción del sistema de ecaciones *x9b< sol#e% *& " in#ersa de la matri( * s#d% *& " descomposición en #alores singlares !r% *&" descomposición YR eigen% *& " #alores y #ectores propios diag%b& " crea na matri( cya diagonal es el #ector b y el resto son ceros diag% *& " extrae la diagonal principal de * co#% *$& $ cor% *$& calclan la co#arian(a y la correlación las colmnas de * con las colmnas de * o 99 oter% *$& " prodcto exterior de dos #ectores o matrices oter%$ Z$ .,U9SKS$ <<<& proporciona por defecto el prodcto exterior de los dos arrays< )in embargo$ podemos introdcir otras fnciones e inclso nestras propias fnciones<
Emplos outer() oter%$ Z$ .,U9SKS$ <<<& x 78 c%A$B$C$D& 4 y 78 c%D$B$& x o y 4 oter%*$y$ WKX&
$AF $BF $CF A$F D B B$F [ D AB C$F AB A[ D$F A [ BD
$AF $BF A$F A C B$F B D
2 *oy $$A $AF $BF A$F D AB B$F [ A
$$B $AF $BF A$F B B$F D [
$$C $AF $BF A$F A[ B$F AB BD
*RR* *rray882 colección de elementos ordenados con #arias secencias de índices %los #ectores y matrices son casos particlares& @reación" array% #ector $ dim9c% $ $ & & -otando de dimensión a n #ector" dim% & Ejemplo" array%A"$ dim9c%B$B$B&& a 78 A" 4 dim%a& 78 c%B$B$B& array%c%T$.&$ dim9c%C$B$B&& 6 reciclado )stitción o extracción de elementos de forma análoga a las matrices con más dimensiones< array blanco o #ector $ blanco o #ector $ blanco o #ector F array blanco o #ector $ blanco o #ector $ blanco o #ector F 78 Tambi5n podemos dar nombres a las dimensiones o comprobar si los tienen con dimnames%&
0actores factor% #ector $ ordered9 T ó .$ labels9 & ordered%#ector $ le#els9c% $ $ $ &$ labels9 & el orden de los ni#eles se inclye en le#els nclass%factor & de#el#e la codificación nm5rica de los ni#eles en el factor le#els%factor & gl%n$ =$ lengt' 9 & genera n factor con n ni#eles repetidos cada no = #eces Ejemplos" ordered%c%SaltoS$ SbajoS$ SmedioS$SaltoS$SaltoS$SbajoS$SaltoS&$ le#els9c%SbajoS$ SmedioS$SaltoS&& ff78c%SaltoS$ SbajoS$ SmedioS$SaltoS$SaltoS$SbajoS$SaltoS&4 as
ABABABABABABABABABAB AABBAABBAABBAABBAABB
0actores
istas +as componentes de na lista son otros objetos !e peden ser de distinto tipo$ longitd$ modo$ e inclso ser otra lista< list% $ $ $ & " para crear listas lista n\ ó #ector ó nombre FF " para extraer componentes lista ] nombre componente " para extraer na componente lista n\ ó #ector ó nombre F " crea na lista con las componentes extraídas names% lista &" de#el#e los nombres de las componentes y permite asignarlos c%listaA$ listaB& " crea na ne#a lista niendo las componentes de listaA y listaB Ejemplos" f 78 gl%B$C& 4 * 78 matrix%A"AB4 ncol9D&4 x 78 rep%c%WaX$ WbX$ WcX&$ C& 4 y 78 se!%8AN$AN$ by9C&4 pepita]*
pepitaBFF
pepitaCFF pepitaCF
pepita78list%factor9f$ *9*$ y$ x& pepitaW*XFF 6 tres formas de extraer * de pepita
pepitaBFFA$ F
names%pepita& mode%pepita& lengt'%pepita&
2oas de datos (data.+rame) data
ls%&
attac'%Orange&
tree
detact%Orange&
Orange]tree
2oas de datos (data.+rame)
a +amilia appl& apply%$ M*RGIU$ .,U$ <<<& )i es na matri( esta fnción aplica .,U a las filas o colmnas seg1n !e margin sea A ó B respecti#amente< tambi5n pede ser n array< Margin es la dimensión en la !e 'ay !e aplicar .,U tapply%x$ f $ .,U& )e aplica la fnción .,U a cada grpo de datos de x definido por cada ni#el del factor f Ejemplo" x78A"H 4 f78factor%c%rep%W*X$B&$rep%WX$C&& 4 tapply%x$ f$ sm& lapply% x$ .,U& aplica la fnción .,U a todas las compenentes de la lista o #ector x y siempre de#el#e na lista sapply%x$ .,U& similar a la anterior pero intenta simplificar la salida a n #ector o na matri( Eejmplos" x 78 list%a 9 A"AN$ beta 9 exp%8C"C&$ logic 9 c%TR,E$.*+)E$.*+)E$TR,E&& lapply%x$mean& lapply%x$ !antile$ probs 9 A"C?D& 4 sapply%x$ !antile&
3iidir un ector o una hoa de datos sbset%x$ <<<& de#el#e na selección de x !e cmple nas condiciones típicamente comparaciones" x]:A 7AN&4 si x es n data
split%x$f & di#ide el #ector o la 'oja de datos x en grpos definidos por los #alores de f Ejemplo" peso78c%A_$AD$AH$AV$BN$BC$CN$A_$BH& 4 trat 78 c%rep%S*S$C&$rep%SS$C&$rep%S@S$C&& split%peso$trat& 4
split%peso$trat&]*
4
as
ct%x$ brea=s$ labels9 T ó .& di#ide el rango del #ector x en inter#alos y codifica los elementos de x de acerdo con el inter#alo en el !e caigan< (labels se tili(a para marcar los ni#eles de las categorías resltantes< Por defecto$ %a$bF< )i `labels 9 .`$ se de#el#en n1meros enteros< Ejemplo" ## 78 c%A$ B$ C$ V$ [$ _& 4 ct%##$C& 4 smmary%ct%##$C&& 4 table%ct%##$C&& 4 ct%##$ c%N$D$$[&&
Importando & e4portando datos
.ormato > $ >> $ file9X >>> >> >
garda todo el directorio de trabajo
.ormato *)@@I< *rc'i#os > W$ W >> W$ X >>> T ó . > & Recperar" sorce%W >>
ejecta las órdenes de R !e están en el arc'i#o >>
.ormato *)@@I< *rc'i#os data $ X >>>
5r+icos(1) AA%& para acti#ar n dispositi#o gráfico y de#
5r+icos(!) *rgmentos de las fnciones gráficas" type 9 WnX %nada& WpX %pntos& WlX %líneas& WbX %pnto 3 línea& WoX $ WsX$ W)X$ W'X xlab 9 ylab 9 para aadir eti!etas a los ejes main 9 sb 9 para aadir títlo y sbtítlo xlim 9 c% $ & ylim 9 c% $ & límites mínimo y máximo para los ejes e Z add 9 T ó . permite solapar n gráfico con otro ya existente col9 para indicar el color< @on colors%& se peden comprobar los disponibles Ejemplos" x 78 rnif%HN$ N$ D&4 y 78 rnif%HN$ N$ D& 4 ( 78 cbind%x$y& plot%x$ y$ main9STít< principalS$ sb9SsbtiS$ xlab9Seje xS$ ylab9Seje yS$ xlim9c%8H$H&$ ylim9c %8H$H&& plot%(& 4 plot%y x& plot%x$ y$ type 9 SpS& 4 plot%x$ y$ type 9 SlS& 4 plot%x$ y$ type 9 SbS& plot%sort%x&$ sort%y&$ type 9 SsS&
5r+icos (") .nciones gráficas de bajo ni#el" points%x$y$ pc'9 n\& aade los pntos definidos por las coordenadas contenidas en los #ectores x e y el aspecto indicado en pc'< )e pede tili(ar type< abline%'9 $ #9 & aade líneas 'ori(ontales y ? o #erticales abline%a$ b$ lty9 n\& aade recta y9 a 3 b x con el tra(o indicado en lty legend%x$ y$ <<<& *ade la leyenda en el pnto especificado title%main9 W W$ sb9 X W & aade títlo y sbtítlo axis% & modica elementos referentes a los ejes como color$ tic=mar=s$ fentes$ etc text%x$y$ eti!etas& aade las eti!etas en las posiciones marcadas por x e y Ejemplo"
5r+icos(,) M1ltiples gráficos por #entana par%mfro09c%filas$ colmnas&& -i#ide la pantalla gráfica en tantas filas y colmnas como se indica< -esp5s irán las órdenes para constrir cada no de los gráficos !e se colocan atomáticamente en los 'ecos creados< Podemos mostrar mc'os gráficos en el mismo dispositi#o gráfico< La función más flexible y sofisticada es split.screen(), explicada en para principiantes, secc. !.".# (p. $).
-atos mlti#ariantes pairs% & matri( de gráficosplanos coplot% & gráficos condicionales Más fnciones gráficas en las librerías lattice$ grap'ics$ <<<
Gráficos en Cpersp% & contor% & image% &
5r+icos (6) Gardar gráficos" En 0indo0s podemos 'acerlo desde el men1 WfileX o con el portapapeles< Tambi5n se pede en#iar el gráfico directamente a n arc'i#o< EjemploA" pdf%file 9 SfA
7rogramación en R
●
●
●
●
●
-efinición de fnciones *rgmentos @ontrol de ejección %control flo0&" condicionales$ bcles @ando algo #a mal" tracebac=$ bro0ser$ debg system
3e+inición de +unciones nombrefncion 78 fnction% > $ > $ <<<& +o !e na fnción de#el#e pede ser n n1mero$ n #ector$ na gráfica$ na lista o n mensaje< Ejemplo: my.f2 <- function(x, y) { + z <- rnorm(10) + y3 <- z y x + return(y3 + 2!) "
Eecución de una +unción Para !e na fnción peda ser ejectada$ primero es necesario cargarla en memoria< @ómo/" ●
●
●
●
+as líneas de la fncion se peden escribir directamente desde el teclado$ o ser copiadas y pegadas desde n editor de texto< )i la fncion está gardada en n arc'i#o *)@II$ se pede cargar con sorce%& como cal!ier otro programa< )i el sario desea !e s fncion sea cargada cada #e( !e comien(a R$ se pede gardar en n arc'i#o especial llamado Wespacio de trabajoX %0or=space& con formato
,na #e( cargada la fnción para ejectarla sólo 'ay !e escribir el nombre de la misma con los argmentos oportnos<
*rgumentos de una +unción Eemplo:
otra.+ 8- +unction(a9 $9 c ,9 d 0*E) ; 41 8- a < " ...=
+os argmentos SaS y SbS tienen !e darse en el orden debido o$ si los nombramos$ podemos darlos en cal!ier orden< otra.+(,9 6) otra.+($ 69 a ,) Pero los argmentos con nombre siempre se tienen !e dar desp5s de los posicionales otra.+(c !69 ,9 6) > error
+os argmentos ScS y SdS tienen Sdefalt #alesS< Podemos especificarlos nosotros$ o no %i
? +"(1:69 1:6)
? +"(1:69 1:69 col @red@)
3e+inición de una +unción :Entorno glo$al & local En R$ no es necesario declarar las #ariables sadas dentro de la fncion %a diferencia de otros Q lengajes como @ o .ortran&< @ando na fncion es ejectada$ R tili(a na regla llamada Wámbito lexicografico” para decidir si n objeto es local a na fncion o global< Ejemplo"
foo 78 fnction%& print%x& 2 x 78 A 2 foo%& AF A
El nombre x no esta definido dentro de foo%&$ asi !e R bscara x dentro del ambito Wcircundante” $ e imprimira s #alor< )i x es tili(ado como el nombre de n objeto dentro de la fncion$ el #alor de x en el ambiente global %externo a la fncion& no cambia<
2 x 78 A 2 fooB 78 fnction%& x 78 B4 print%x& 2 fooB%& AF B *'ora print%& sa el objeto x definido dentro de s ambiente$ i
Control de eecución (1): condicionales if %condicion.logica& instruccion donde SinstruccionS es cal!ier expresión #álida %inclida na entre & condicion.logi ca cyo resltado es TR,E o .*+)E<
Control de eecución (!): condicionales Condicionales anidados: i+ (casoB1);instrucciónB1= else i+(casoB!) ;instrucciónB!= else i+(casoB") ;instrucciónB"= else instrucciónB,
ifelse%condición$ a$ b& Es na #ersión #ectori(ada del condicional if< -e#el#e n #ector cya componente i es la componente i del #ector a si la condición es TR,E o del #ector b si la condición es .*+)E 2x 78 c%8A$ B$ C$ 8B$ 8C$ D& 2ifelse%x7N$ 8A$ A& de#el#e %8A$ A$ A$ 8A$ 8A$ A&
Control de eecución ("): $ucles 0'ile %condicion.logica& instrcción for %variable.loop in valores& instruccion Ejemplos:
for%i in A"H& print%A"i& for%n in c%B$H$AN$BN$HN&& x 78 A"n 4 cat%n$S"S$ sm%xLB&$SnS&
brea= termina el bcle !e se está ejectando next termina la iteración actal dentro de n bcle !e se está ejectando repeat instrcción )e termina la ejección con brea= s0itc'%expresión$ <<< & Para seleccionar na de #arios argmentos
Reisión de la eecución(1) system
2debg%my
Introducción a R
Estadística básica con R
Estadística $sica con R Estadística descripti#a Tablas de frecencias< Estadísticos resmen< Gráficos<
-istribciones de probabiliad Inferencia estadística Modelos lineales *no#a< Regresión lineal<
Estadística descriptia: #a$las de +recuencias table% & reali(a tablas de frecencias absoltas< )i !eremos frecencias relati#as di#idmos por el total % table% & ? sm% & & table% & )i ponemos #arios #ectores o factores reali(a tablas cr(adas< @on margin