You are on page 1of 0

I.

Introducción al lenguaje R (4 horas: 2 HT/2 HP; 28 de Enero
!"jeti#os: Instalar e integrar R a cual$uier siste%a o&erati#o ' considerar las #entajas de R
co%o una herra%ienta &ara sus la"ores cient()icas.
*+u, es R ' &or $u, elegirlo so"re otros lenguajes-
Instalación en .indo/s
Instalación en 0inu1 (2"untu
Instalación en 3ac
Instalación en R 4a secas5
Rstudio
6reación de o"jetos
2so de )unciones
!"tener a'uda en R
7ectores
6uadros de datos
II. Pro"a"ilidad ' relación con la estad(stica (4 horas: 8 HT/9 HP; 2: de Enero
!"jeti#os: Entender los conce&tos ";sicos de la &ro"a"ilidad< descri"ir un conjunto de datos<
esta"lecer criterios so"re las %edidas de tendencia central ' dis&ersión< di)erenciar distri"uciones
discretas ' continuas< relacionar la naturale=a de nuestros datos con sus res&ecti#as
distri"uciones< calcular #alores cr(ticos ' #alores de &ro"a"ilidad.
Ti&os de #aria"les
>recuencias
?ociones de &ro"a"ilidad
3edidas de Tendencia 6entral
3edidas de &osición
3edidas de dis&ersión
Inter#alos de con)ian=a &ara la %edia
Relación de los &ar;%etros< estad(sticos ' el ta%a@o de %uestra
0as distri"uciones en R ' sus )unciones gen,ricas
Aistri"uciones discretas (Bernoulli< Bino%ial< Poisson
Aistri"uciones continuas (2ni)or%e< e1&onencial< nor%al< 6hiCcuadrada< T de Dtudent< > de
Dnedecor
Ereas de"ajo de la cur#a
III. Prue"as de hi&ótesis ' &rue"as ";sicas (4 horas: 2 HT/2 HP; 8F de Enero
!"jeti#os: Esta"lecer hi&ótesis estad(sticas< entender las nociones del dise@o de e1&eri%entos<
conocer las &rue"as ";sicas< cu%&lir con sus asunciones ' relacionarlas con conce&tos "iológicos.
Hi&ótesis estad(sticas
Error estad(stico
Prue"as de hi&ótesis: Relación entre P< G ' el inter#alo de con)ian=a
Ti&os de %uestreo ' Aise@o e1&eri%ental
Hjuste a distri"uciones
Esti%ación de &ar;%etros: 3;1i%a #erosi%ilitud
Esti%ación de &ar;%etros: Bootstra&
Esti%ación de inter#alos de con)ian=a &ara la %edia ' la #arian=a
Prue"a de "ondad del ajuste (chiCcuadrada ' sus a&licaciones
Prue"as de nor%alidad
Trans)or%ación de datos
Prue"as de ho%ogeneidad de #arian=as ' su i%&ortancia
Prue"a de T de Dtudent< .ilco1on ' 2 de 3annC.hitne'
Regresión lineal ' an;lisis de correlación
I7. H?AE7H ' H?6!7H (4 horas: 2 HT/2 HP; 89 de Enero
!"jeti#os: Hu%entar la co%&lejidad del dise@o de nuestros e1&eri%entos< co%&arar %Ilti&les
&o"laciones de datos ' usar la co#arian=a co%o una herra%ienta estad(stica.
6onstrucción del &or &artes del an;lisis de #arian=a
Aise@o co%&leta%ente aleatori=ado
Aise@o en "lo$ues
Aise@o de &arcelas di#ididas (s&lit &lot
Aise@o )actorial
Aise@o &ara datos longitudinales o de %edidas re&etidas
H?6!7H ' su a&licación
7. Re&aso ' E#aluación (4 horas: 9 HT/ 8 HP; 9 de >e"rero
Bi"liogra)(a
BolJer< B. 2FFK. Integrating Ecological 3odels and Aata in R. Pincenton 2ni#ersit' Press.
Princeton and !1)ord< 2L
6ra/le'<3. M. 2FFN.The R BooJ. Mohn .ile' O Dons 0td< The Htriu%< Douthern Pate<
6hichester< .est Dusse1< England
Aalgaard< P. 2FF8. Introductor' Dtatistics /ith R D&ringerC7erlag Berlin Heidel"erg< ?e/ 'orJ<
?Q.
3ar$ues de D;< M. P. 2FFN. H&&lied Dtatistics 2sing DPDD< DTHTIDTI6H< 3HT0HB and R.
D&ringerC7erlag Berlin Heidel"erg< ?e/ 'orJ< ?Q.
+uinn< P. P.< Leough< 3. M. 2FF2. E1&eri%ental Aesign and Aata Hnal'sis )or Biologists.
6a%"ridge< ?e/ QorJ< ?Q.
D&ector< P. 2FF8. Aata 3ani&ulation /ith R. D&ringerC7erlag Berlin Heidel"erg< ?e/ 'orJ< ?Q.
7ena"les< .. ?. ' D%ith< A. 3. Hn Introduction to R. ?et/orJ Theor' 0i%ited< 0ondon 2L.
Rar M. H. 2F9F. Biostatistical Hnal'sis. 2nd Ed. PrenticeCHall< Engel/ood 6li))s< ?e/ Merse'<2DH.
Introducción
Duración: del curso. ~100 horas / ~25 cada Unidad
Obj etivos del curso
• Instalar e integrar a cual!uier siste"a o#erativo.
• Involucrar a los #artici#antes a usar co"o una herra"ienta #ara sus labores
cient$%icas.
• Otorgar las herra"ientas inci#ientes #ara desenvolverse en torno a la #rogra"ación
cient$%ica.
• Usar #ara llevar a cabo an&lisis estad$sticos.
Es bien sabido que está a la disponibilidad de la investigación científica un gran número de paqueterías
informáticas con enfoque en estadística/matemáticas que facilitan las labores de investigación. Entre
algunos nombres reconocidos encontramos a Statistica, SAS, Matab, Mat!ematica, "iostats, S#SS,
entre otros $ sumándole soft%are especiali&ado para 'cálculos avan&ados( o 'tareas específicas' como
#robit, Surfer, #A)#, *inclada, +urveE,pert, etc. Sin embargo, se cuenta con la desventa-a de que
estas paqueterías no son sof t%are gratui to $ l os preci os de algunos de ellos se elevan sobre los
mi l es de dol ares. .tra desventa-a más es que pocos de estos programas nos ofrecen sol uci ones
general es para llevar a cabo múltiples análisis desde diferentes enfoques, sobre todo en el que!acer
del biólogo, el físico $ el químico, cu$a variedad de disciplinas abarca un e,tenso uso de la estadística $
modelos matemáticos.
Entre los pocos programas que ofrecen soluciones integrales están Mat!ematica $ Matab. Sobre todo
/ste último ofrece una potente !erramienta para los investigadores por su amplia versatilidad. Sin
embargo, ambos soft%are se encuentran entre los precios más coti&ados dentro del mercado. .tra
característica que tienen en común es el uso de l engua- es internos para su uso, lo cual implica el
uso a fondo de la paquetería $ abre, por lo tanto, un nuevo abanico de posibilidades $ soluciones para
los conflictos de los científicos0 el uso de l engua- es de programaci ón. El empleo de lengua-es de
programación descartan la necesidad de limitarse a un paquete informático $ en cambio nosotros
podemos generar el paquete mismo. El gran pero de este enfoque es que el científico aparte de la
necesidad de dominar por completo los conocimientos sobre la materia $ los desarrollos matemáticos
con respecto a la metodología que desea aplicar, debe tambi/n iniciarse en la programación, que es
toda una disciplina que abarca la licenciatura en informática/computación. Esta labor no es una
opción para la gran ma$oría de la comunidad intelectual. Entre dic!os lengua-es que nos abren esta
nueva gama de posibilidades encontramos una gran variedad de opciones que se acomodan a nuestras
necesidades0 +, 1ortran, +22, #$t!on, a3e,, 4ava, 1las!, 1ortran, Mat!ematica, M 5Matab6 $ 7.
a ma$oría de estos lengua-es son de uso libre, sin embargo, dentro de la comunidad científica +, +2
2, 7 $ M !an sido sin duda los me-or aceptados.
'u( es ) #or !u( elegirlo sobre otros lenguaj es* ¿
7 es un lengua-e de programación con un enfoque principal en el uso estadísti co $ generaci ón de
gráf i cas de al ta cal i dad. Se trata de un lengua-e fle,ible basado en una orientación basada en
ob-etos que nos permite lidiar con 'cualquier( problema de índole científica. a venta-a que tiene 7
sobre los demás lengua-es de programación es que fue dise8ado específicamente para estadística, sin
embargo, en la actualidad cuenta con una e,tensa comunidad que se encarga de desarrollar $ ampliar
los usos de 7, usos que $a !an abarcado una mu$ amplia gama de análisis $ usos 5visitar !ttp0//cran.r9
pro-ect.org/%eb/pac:ages/available;pac:ages;b$;name.!tml6. a posibilidad de que la comunidad
desarrolle el lengua-e a su libre albedrío es consecuencia de que este lengua-e sea de libre distribución,
es decir, es distribuido ba-o licencia <#. a licencia <# 5<=) <eneral #ublic icense6 nos presenta
cuatro garantías esenciales0
• a libertad de e-ecutar el programa, para cualquier propósito.
• a libertad de estudiar como traba-a el programa $ modificarlo.
• a libertad de redistribuir copias.
• a libertad de distribuir copias de sus versiones modificadas a terceros.
Es debido a esta filosofía que 7 a crecido tanto, $a que no tiene costo alguno $ es tan potente como
cualquier otro lengua-e de programación. )na última venta-a que tiene el uso de los lengua-es de
programación es que para poder !acer uso de ellos, es necesario conocer a la perfección el
procedi mi ento estándar que conlleva el análisis o prueba que deseamos aplicar, lo cual elimina el
mal !abito del 'clic:eo para ver cual análisis es el bueno( $ obliga al usuario a teclear lo que realmente
desea reali&ar, fomentando una l abor críti ca $ proposi ti va para resol ver probl emas . Sin
embargo, si la labor del investigador no requiere el uso de una !erramienta potente, no es necesario
que se torture con un lengua-e de programación, simplemente no lo necesita.
7esumiremos > venta-as que nos ofrece 70
• ?ntegración0 <ran variedad de funciones disponibles para múltiples procesos de diferente
naturale&a. ?nterfaces, intersistema $ uso de otros lengua-es de programación.
• ?nteractividad0 El usuario está en constante interacción, se empapa del conocimiento del
lengua-e, su significado $ aplicación. Esto evidentemente conlleva al aprendi&a-e de los m/todos
implicados, al desarrollo $ modificación de los mismos.
• #rogramabilidad0 #odemos modificar $ desarrollar nuevos m/todos de análisis . )so de scripts $
repetibilidad de los procedimientos llevados a cabo.
• +apacidad de evolucionar0 El lengua-e de 7 permite que las características que tengan que ser
modificadas sean conservadas a trav/s del tiempo. as paqueterías se actuali&an diariamente $
la comunidad mantiene un desarrollo constante del lengua-e $ de sus e,tensiones.
• <ráficos de gran calidad.
• Es soft%are libre.
+esión 1: ,as -I. /Introducción0 instalación0 integración0 inter%a12
Duración: ~ 1 3 hora
Obj etivos:
• 4o"#render !ue es ) sus alcances
• Instalar bajo cual!uier siste"a o#erativo e integrarlo con la inter%a1 gr&%ica de
studio
• 4onocer ) e5#lorar la inter%a1 de studio
• 6a"iliari1arse con las #&ginas relacionadas con el #ro)ecto
ecursos electrónicos
htt#://cran.r7#roject.org/ 8&gina o%icial del #ro)ecto
htt#://cran.r7#roject.org/9eb/#ac:ages/ ,ista de #a!uetes dis#onibles #ara
htt#://cran.r7#roject.org/bin/linu5/ubuntu/ ;u$a original de instalación en Ubuntu
htt#://rstudio.org/ 8&gina o%icial de studio
En esta primera sesión vamos a instalar 7 $ la interfa& 7studio. 7 puede ser descargado directamente
desde la pagina oficial de +7A=. Al ?ngresar a la página observamos que nos ofrece inmediatamente
la opción de instalarlo en sistemas inu,, Mac $ *indo%s. a instalación en inu, es sin duda la más
laboriosa, pero no implica un reto ma$or. as instalaciones para *indo%s $ inu, se describen a
continuación
<indo9s
#ara instalar 7 en *indo%s, necesitaremos descargar el instalador .e,e desde la página de +7A=. El
arc!ivo .e,e que es de nuestro inter/s es el arc!ivo que corresponde a 'base(. os otros dos
instaladores corresponden a una versión de desarrollo para colaboradores 5dev6 $ !erramientas para
quienes dise8an paqueterías basadas en lengua-e 7. =o necesitamos ninguno de los dos porque
sencillamente su uso escapan de los ob-etivos del curso. )na ve& descargado se procede a instalarlo
como cualquier otro programa. )n procedimiento mu$ similar sigue a la instalación de 7studio, que se
puede descargar desde su página oficial. Es probable que esta instalación no nos genere un acceso
directo, por lo que !a$ que anotar la carpeta donde lo instalamos 5primera pantalla en el proceso de
instalación6 $ buscar el e-ecutable en la carpeta /bin/ para generar el acceso directo.
,inu5 /Ubuntu2
7 se encuentra dentro de los repositorios oficiales de )buntu, sin embargo, es muc!o me-or actuali&ar
7 desde los repositorios oficiales del pro$ecto, $a que la información se adquiere de manera directa.
#ara llevar a cabo esto a8adiremos el repositorio oficial de 7 para M/,ico. El procedimiento oficial
puede leerse en la guía de instalación de 7 en la página oficial del pro$ecto +7A=. Al a8adir un
repositorio, podemos actuali&ar la versión de 7 $ sus paquetes de manera directa e inmediata con
respecto a las modificaciones en el la página oficial de 7. Esto es una gran venta-a sobre *indo%s, $a
que no tenemos que desinstalar 7 para instalar una versión nueva $ tampoco perdemos paquetes por
!acerlo.
Abrimos una terminal $ e-ecutamos los siguiente comandos
sudo add-apt-repository 'deb http://cran.itam.mx//bin/linux/ubuntu precise/'
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E084!"# $$ gpg -a
--export E084!"# % sudo apt-key add -
sudo apt-get update $$ sudo apt-get install r-base r-recommended synaptic
Si la versión de nuestro )buntu no es @A.BC, se cambia la terminación según el nombre clave de
nuestra distribución. Es obligatorio usar el repositorio de ?3AM debido a que el otro repositorio para
M/,ico, el del +.#.S, esta caído. #ara instalar 7studio seguimos los siguientes comandos0
Sistemas DA9bits
&get 'http://do&nload'.rstudio.org/rstudio-0.#(.)4*-i*8+.deb'
sudo dpkg -i rstudio-0.#(.)4*-i*8+.deb
rm rstudio-0.#(.)4*-i*8+.deb
Sistemas >C9bits
&get 'http://do&nload'.rstudio.org/rstudio-0.#(.)4*-amd+4.deb'
sudo dpkg -i rstudio-0.#(.)4*-amd+4.deb
rm rstudio-0.#(.)4*-amd+4.deb
.tras distribuciones inu, 51edora, 7ed Eat, openSuse, Febian6 $ Mac serán atendidas
individualmente $ puede consultarse su guía en la página de +7A=.
-a secas.
Antes de considerar la interfa& de 7studio ocupemos la interfa& original de 7. #ara e-ecutar el
programa desde *indo%s basta un doble clic:, para )buntu !a$ que escribir 7 en la terminal. a
pantalla que nos aparece será conocida consol a de traba-o $ es donde arro-ara nuestros resultados.
Fentro de la consola podemos e-ecutar comandos que puede interpretar 7, escribi/ndolos $ pulsando
'enter(. Si pulsamos la tecla 'arriba( nos devolverá el último comando usado. )sar como cualquier
calculadora.
studio
Es !ora de abrir 7studio. Se trata de una interfa& gráfica de alta calidad para 7, que nos permite un
uso avan&ado de todas las funcionalidades que presenta 7 de una manera más amigable $ funciones
que facilitan el uso de 7. Entremos al menú 1ile 9G =e% 9G 7 Script, o simplemente presionamos
ctrl2s!ift2n. A!ora tenemos C secciones en 7studio0
• a sección superior i&quierda es la &ona de 'scripts(, donde podemos escribir $ guardar una
serie de comandos que que deseamos e-ecutar en con-unto. El uso de scripts tiene una gran
venta-a, $a que podemos observar todos los comandos que deseamos llevar a cabo en un solo
lugar sin e-ecutarlos para poder seguir redactando comandos subsecuentes. +on las
!erramientas de la parte superior podemos des!acer, re!acer, guardar, importar imágenes,
e,plorar las características del script, sus componentes $ e-ecutar los comandos. En la parte
inferior nos indica la posición del cursor en el script 57englón0+arácter6, secciones dentro del
script $ tipo de script. En este curso nos enf ocaremos úni camente a l os scripts de 7.
• a sección inferior i&quierda es la consola misma que $a !emos manipulado. En este lugar
podemos introducir los comandos directamente $ la ventana de salida de los resultados. En la
parte superior de la sección se indica la carpeta de traba-o.
• a sección superior derec!a presenta tres pesta8as, cada una con un panel de botones superior
con funciones simples para su uso0
• *or:space, que es nada más que los ob-etos que tenemos en uso actualmente,
• Eistor$, que es un !istorial de los comandos que !emos usado recientemente.
• Eelp, que es una ventana que inclu$e el sistema de a$uda. El sistema de a$uda se verá con
ma$or detalle posteriormente.
• a sección inferior derec!a tambi/n esta compuesta por tres pesta8as, tambi/n con su
respectivo panel de botones0
• 1iles, que es un e,plorador interno
• #lots, donde se almacenaran las gráficas generadas.
• #ac:ages donde podemos visuali&ar, gestionar, instalar, activar $ desactivar paqueterías
e,ternas. En caso de i nu, no es recomendabl e i nstal ar paqueterías por
este medi o. a instalación de paqueterías se verá con ma$or detalle posteriormente.
a misma interfa& de 7studio presenta una serie de menús que nos permiten configurar la interfa&. Es
-usto aclarar que estos menús no atentan contra la filosofía crítica de 7, $a que no proveen soluciones
directas para el uso del lengua-e, sino para !acerlo un poco más amigable, por e-emplo, al insertar el
primer carácter de HI, 56, '( o JK, complementará el siguiente inmediatamente $ nos colocara en medio
de ambos.
,ota: -odos los conceptos no comprendidos en esta secci.n se ver/n a detalle en
sesiones posteriores. 0as ventanas y pesta1as de la derecha de 2studio pueden
variar3 pero son con4igurables dentro de las opciones de 2studio.
+esión 2: 4reación obj etos0 uso de %unciones0 #a!ueter$as ) siste"a de a)uda
Duración: ~ 2 horas
Obj etivos:
• Interactuar con el siste"a de objetos
• =nali1ar la estructura de los objetos
• 4o"#render el uso de %unciones
• Instalar0 adjuntar ) re"over #a!ueter$as
• Ingresar0 usar ) a#o)arse en el siste"a de a)uda
ecursos electrónicos
• 8a!ueter$a -nortest.
Eablaremos un poco más a detalle de 7. Se trata de un lengua-e que traba-a fundamentalmente en
modelos de pregunta9respuesta, es decir, nosotros le indicamos una orden al programa $ nos devuelve
el resultado, este tipo de lengua-es se les conoce como l engua- es i nterpretes. =osotros tenemos la
posibilidad de insertar esta orden directamente en la consola o podemos usar scripts para mandar
ordenes una tras otra. +uando 7 puede e-ecutar una función podemos observar en la consola el
indicador 'G(, en caso de que no est/, 7 no está disponible para recibir más comandos. Esto
generalmente se debe a que no !a concluido la tarea anterior. En caso de mostrar un indicador '2(
significa que está esperando más información para poder interpretar el comando, comúnmente esto se
debe a que se introdu-o un comando incompleto o por partes 5mu$ útil para crear gráficas $ funciones6.
7 es un l engua- e ori entado a ob- etos , esto quiere decir que combina características de ingeniería
en soft%are de lengua-es tradicionales $ el uso de scripts. Esta combinación nos permite crear ob- etos
5vari abl es si mból i cas6 , los cuales tienen una función especifica con las características que
designemos.
)n scri pt es una serie de comandos con una estructura co!erente $ ordenada 5al menos eso se
pretende6 que pueden ser e-ecutados parcial o en su totalidad por el programa. =os dan la venta-a de
poder guardar el te,to 5cualquier te,to es valido, pero 7studio genera arc!ivos '.7(6 para anali&arlo o
e-ecutarlo posteriormente. 3ambi/n nos permite tener una visión más global de lo que queremos
reali&ar en 7 $ modificarlo a nuestro anto-o sin generar consecuencias en nuestros resultados. #ara usar
un script en 7 escribir la línea de comando $ para interpretarla 5mandarla a la consola6 usar ctrl2r,
dentro de 7studio usar ctrl2enter.
4reación de obj etos
En 7 podemos usar múltiples cl ases de ob-etos . Sin embargo, casi cualquier paquetería contiene
ob-etos especiales, los cuales no están abarcados en este curso. =os limitaremos a conocer los ob-etos
más generales, es decir, los que nos ofrece 7 en la gran ma$oría de los casos sin a8adir ninguna otra
paquetería.
as ob-etos más comunes en 7 según creciente orden de comple-idad son0
• simples
• vector
• factor
• matri,
• data.frame
• list
• arra$ • function
Aparte de la clase, los ob-etos tambi/n presentan un modo. oas modos pueden ser0
• logical
• numeric
• c!aracter
• atomic
• comple,
• ra%
• integer
#ara poder reconocer las características de cada uno de estos tipos de ob-etos primero aprenderemos
como crearlos $ es el ob-etivo de secciones siguientes $ la pró,ima sesión.
Ea$ ob-etos que son cargados por default por el programa, esto se debe a que son parte de los procesos
fundamentales, sin embargo, nosotros podemos crear ob-etos que serán almacenados en la memoria del
sistema 57AM6 en una l i sta de ob- etos persi stentes . Esta lista es la lista de ob-etos que vemos en la
sección superior derec!a de 7studio, $ la misma lista que podemos consultar con las funciones l s $
l s. str.
#ara crear un ob-eto usamos un operador de asi gnaci ón que es el con-unto de símbolos 'L9( que
aseme-an a una flec!a. Es importante que ambos símbolos est/n -untos, sino cambia la connotación e
interpretación de ellos 5se interpretan individualmente6. 3ambi/n podemos usar 'M( como operador
de asignación. A la i&quierda del operador se indica el nombre del ob-eto $ a la derec!a los valores que
lo componen.
5n 6- )7
=o !a$ un resultado inmediato al usar este comando, pero a!ora nuestro ob-eto !a sido designado $ lo
podemos encontrar en la lista de ob-etos. Fe a!ora en adelante ',( toma un valor de A. 3ambi/n
podemos designar valores lógicos, aunque estos comúnmente son arro-ados por una operaci ón
l ógi ca.
)68
5l 6- )987
A!ora generaremos un ob-eto con letras como valor0
c 6- boo
=os regresa un error0 El ob-eto 'boo( no encontrado.
5c 6- :boo;7
En este caso $ adquiere el valor del te,to 'boo(. El te,to está entrecomi l l ado, de esta manera no
genera ningún conflicto. +aso similar sucede con las rutas de acceso 5)76, pero esto se verá en
sesiones posteriores. #ara poder crear ob-etos más complicados en necesario que entendamos como
funcionan las funciones de 7. os ob-etos de 7 son sensibles a capitali&ación
Uso de %unciones
Easta este momento, $a !emos ocupado funciones, pero no !emos definido que es lo que son
formalmente. as funciones dentro de 7 tambi/n son ob-etos, pero estos ob-etos no están indicados a
menos que sean asignados por uno mismo. as funciones cumplen con el papel de operadores
compl e- os dentro del lengua-e, con los cuales se reali&ara un traba-o sobre los parámetros o
argumentos que designemos. a estructura de la función puede ser anali&ada directamente desde su
código fuente 5source code6 o un esbo&o de ella en el sistema de a$uda. Si queremos reali&ar múltiples
acciones en una sola línea de comandos tenemos que usar N 5punto $ coma6 para separar cada acción.
os parámetros de la función se definen dentro de par/ntesis precedidos por la función. as funciones
l s $ l s. str no necesitan de ningún parámetro para que cumplan su función, tampoco muc!as otras
funciones. #ero la gran ma$oría si lo necesitan. as funciones cl ass, mode, str, structure $ t$peof
nos ofrecen información de las características de un ob-eto. En estos casos, los parámetros de la función
es el ob-eto del que se quiere obtener información. #robar con los ob-etos que $a !emos creado.
class5n7< mode5n7< str5n7< structure5n7< typeo45n7
class5l7< mode5l7< str5l7< structure5l7< typeo45l7
class5c7< mode5c7< str5c7< structure5c7< typeo45c7
a función ci tati on nos arro-a los datos para citar a 7, set%d nos permite asignar el directorio de
traba-o $ q o qui t cierran 7. Fe a!ora en adelante las funciones se se8alarán en negritas, los
argumentos en itálicas $ al final de cada sección se !ará un resumen de las funciones nuevas usadas.
,uevas 4unciones: ls3 ls.str3 class3 mode3 str3 structure3 typeo43 citation3 set&d3
=/=uit
Obtener a)uda en
Febido a la inmensa diversidad de funciones que podemos encontrar en 7, es necesario un sistema
organi&ado de a$uda que nos permita conocer las características de las paqueterías instaladas $ las
funciones disponibles. Este sistema de a$uda podemos invocarlo de diversas maneras.
>ls
>>!,?@!
help5ls7
help.search5:!,?@!;7
Fentro de 7studio !el p es sinónimo de O P !el p. searc! de OO. Sin embargo, si estamos dentro de 7
directamente, la función !elp desplegará el sistema de a$uda en nuestro navegador, no dentro de la
interfa&. )na sutile&a que debe de entenderse es que O P OO son operadores, no funciones. El Sistema
de a$uda consiste en la descripción $ uso de la función, su uso, argumentos, detalles, e-emplos,
funciones relacionadas $ referencias. +on el sistema de a$uda es más que suficiente para entender todo
lo que !ace una función. a función fi nd nos indica a que paquete pertenece una función
,uevas 4unciones: help3 help.search3 4ind
Instalar #a!ueter$as en
as paqueterías son con-untos de comandos creados para una función en especifico, estas paqueterías
son 'e,tras( que usamos dentro de 7 para reali&ar funciones especificas sin tener que crear el código.
a instalación de paqueterías se puede reali&ar de dos maneras, gráfica $ por comandos. +omo
siempre es más recomendable a trav/s de comandos, con la función i nstal l . pac:age. Eo$
instalaremos la paquetería 'nortest(, que nos permitirá reali&ar pruebas de normalidad en sesiones
posteriores.
install.package5pkgsA:nortest;3 dependenciesA-7
)na ve& introducido el comando se nos abrirá un menú en el cual eligi/remos el servidor del cual
descargar el paquete. En nuestro caso es Me,ico +it$ 53e,coco6. En el argumento p:gs podemos
indicar el nombre de la paquetería o concatenar varios, este m/todo requiere de cone,ión de
internet al momento de instalar. En caso de no tener internet, es conveniente indicar la ruta de acceso
al un comprimido binario .tar.g& descargado previamente de +7A=. #ara indicar un destino o carpeta
en específico donde instalar la paquetería se usará el argumento dir. El argumento dependencies instala
los paquetes de los que depende la paquetería que queremos instalar, lo cual evita conflictos futuros. Fe
manera gráfica podemos instalar paqueterías en el <)? 5<rap!ical )ser ?nterface6 de 7 en el menú o
directamente en 7studio en la pesta8a #ac:ages.
En el caso de i nstal ar paqueterías en )buntu, la tarea se vuelve muc!o mas versátil, $a que
podemos instalarla almenos de cinco manerasdiferentes. Fos $a fueron comentadas $ son las menos
recomendables tambi/n. #odemos instalar paqueterías de 7 desde S$naptic o desde la terminal,
aunque no todos los paquetes se encuentran disponibles0
sudo apt-get install r-cran-nombredeapa=ueterBa
#odemos instalar los paquetes con el siguiente comando en la terminal0
2 CD E,F-!00 nombredelapa=ueterBacomprimida
3odos los m/todos anteriores generan problemas de dependencias $ asignaciones en los paquetes9 El
m/todo más recomendado es ingresar a 7 como superusuario $ llevar a cabo el primer procedimiento
descrito0
sudo 2
install.packages5:nortest;7
Es importante instalar todos los paquetes con un solo m/todo para evitar aun más problemas de
dependencias. )na ve& instaladas las paqueterías debemos cargarlas con la función l ibrar$0
library5:nortest;7
El argumento lib.loc nos permite cargar una paquetería que no fue instalada en la carpeta default
indicando la ruta de acceso. En caso de !aber instalado la paquetería en la carpeta por defecto no es
necesario indicar la ruta. #ara quitar la librería de la sesión actual ocupamos el comando
detac!5pac:ageM(nombredel paquete(6 , para ingresar al sistema de a$uda de la paquetería,
!el p5pac:ageM(nombredel paquete(6 . a función l i brar$ sin ningún argumento listamos todas
las paqueterías instaladas. +on update.pac:ages actuali&amos los paquetes, labor que !a$ que !acer
continuamente. a función para remover paqueterías instaladas es remove. pac:ages .
,uevas 4unciones: install.packages3 library3 detach 5para remover una pa=ueterBa de
la sesi.n73 help3 update.packages3 remove.packages
,ota: 0a 4unci.n concatenar se abarcar/ la pr.xima sesi.n
+esión >: =rreglos de in%or"ación co"unes en . 8rueba ) 4oerción de ti#os
Duración: ~ 2 horas
Obj etivos
• Di%erenciar ) sacar el "ejor #rovecho de los di%erentes arreglos de in%or"ación en
• =nali1ar la estructura de objetos ) arreglos en
• 4rear objetos de "a)or co"#lejidad
• =nali1ar las caracter$sticas de cada uno de los arreglos de in%or"ación en
• 4oercionar ti#os de objetos
A!ora que entendemos como usar a la perfección las funciones $ la asignación de ob-etos, podemos
empe&ar a crear ob-etos cada ve& más complicados, que a su ve& permiten almacenar cada ve& más
información. Estos arreglos de información están basados en ob-etos a su ve& menos comple-os0
vectores, matrices, cuadros de datos, arreglos, listas $ funciones. a creación de funciones tiene una
sesión aparte al final del curso, el resto de los arreglos de información en 7 serán abordados en esta
sesión.
?ectores
Easta el momento !emos podido crear ob-etos de clase numeric, logical $ c!aracter. )semos la función
c para concatenar datos, es decir, para unirlos en un solo ob-eto.
5numerico6- c5*34383+383#3')*3')*3*4838+(77
Esto nos generará una nueva clase de ob-eto que conoceremos como vector. )n vector tiene una
estructura más comple-a que numeric, logical o c!aracter. Se trata de un con-unto de ob-etos más
simples, concatenados $ dispuestos en orden. El vector tiene diversas características, pero en lo
particular su longitud es una mu$ importante. #ara mostrar la longitud del vector usemos la función
l engt! $ el modo que puede obtenerse con mode. A!ora creemos un vector con ob-etos clase
c!aracter0
5caracteres6- c5:a;3;a;3;a;3;a;3;a;3;b;3;b;3;b;3;b;3;b;77
)no con ob-etos logical0
5logico 6- c5-3-3-3-3-3G3G3G3G3G77
Mu$ probablemente los vectores sean la clase de ob-etos más usada en 7, $ la base estructural de la
ma$oría de los ob-etos más comple-os.
En el caso de que deseemos reali&ar un análisis que involucre f actores o vari abl es e,pl i cati vas , es
necesario indicarle a 7 que un vector contiene datos de este tipo. #ara indicarle esto a 7 usamos la
funcion f actor. )na de las propiedades más importantes de los factores son sus niveles los cuales
pueden ser desplegados con la función l evel s.
54actores 6- as.4actor5caracteres77
levels54actores7
,uevas 4unciones: c3 length3 4actor3 levels
@atrices
as matrices son fáciles de crear a partir de datos vectori&ados, sin embargo, necesitamos que todos los
datos que ingresaremos a la matri& tengan el mismo modo $ longitud. El uso de las matrices en el
álgebra lineal es bastante e,tenso $ tambi/n !a sido aplicado dentro de 7. El paquete 'matri,( esta
dise8ado para su análisis. =osotros no profundi&aremos tanto en el uso de matrices, sin embargo, son
mu$ útiles para almacenar nuestros datos. as matrices tienen varias propiedades interesantes. #ara
crear una matri& usaremos la función matri ,. as dimensiones de la matri& pueden ser obtenidas con
di m, $ estas dimensiones podemos asignarlas con los argumentos nro% $ ncol, no solo eso, sino que
tambi/n podemos asignar el nombre de cada columna la función col names, caso similar para los
renglones con ro%names. 3ambi/n podemos indicar como queremos que se llene la matri& de datos,
es decir, agregando los valores llenando primero los renglones o primero llenando las columnas, esto
con el argumento b$ro%. #ara, más detalles de la función consultar la a$uda. )na característica más de
las matrices es que necesitan ser for&osamente sim/tricas.
5matriH' 6- matrix577
5matriH' 6- matrix5ncolA)3nro&A'077
5matriH'I3'J 6- numerico7
5matriH'I3)J 6- 4actores7
5matriH) 6- matrix5c5numerico3 4actores73 nro&A'03 ncolA)77
colnames5matriH)7 6- c5KnumericoK 3K4actoresK7< matriH)
ro&names5matriH)7 6- 0E--E2FI':'0J
#odemos a!orrarnos el uso de las funciones col names $ ro%names con el argumento dimnames
dentro de la función matri ,.
5matriH* 6- matrix5c5numerico3 4actores3 logico73 nro&A*3 byro&A-3
dimnamesAlist5c5KnumericoK3 K4actoresK3KlogicoK730E--E2FI':'0J777
,uevas 4unciones: matrix3 colnames3 ro&names3 dim
,ota: !un=ue un obLeto no perteneHca el mismo modo =ue los dem/s3 la matriH lo
incluye mediante coerci.n. Esto se explicar/ al 4inal de la sesi.n. El uso de los
corchetes se ver/ en la pr.xima sesi.n
=rreglos
)n arreglo es un con-unto de vectores ordenados en un arreglo multidimensional. )na matri& es una
arreglo bidimensional, un con-unto de matrices es un arreglo tridimensional. Es claro que una de las
características más importantes de un arreglo es su dimensionalidad, la cual se puede obtener con la
función dim 5del mismo modo que las matrices6. #ara generar arreglos, usaremos la función arra$.
array5':')03 dimAc5+3'03)77
+on el argumento dim, indicamos las dimensiones que deseamos, coercionadas en un vector. En este
último comando lo que indicamos en las dimensiones es que queremos > filas, @B columnas $ A
matrices. Esto es un arreglo tridimensional. A!ora !aremos un arreglo con más dimensiones.
array5':')03 dimAc5*3)383)3)77
A!ora creamos un arreglo de información pentadimensional, donde tenemos A con-untos, que a su ve&
contienen cada uno A con-untos más, cada uno con Q matrices de D filas $ A columnas.
,uevas 4unciones: array
4uadros de datos ) ,istas
A diferencia de las matrices, las funciones data.f rame $ l i st nos permiten crear ob-etos con diferentes
modos sin necesidad de coercionarlos. os data frames al igual que las matrices necesitan necesitan
tener el mismo número de datos dentro de cada variable, en cambio para las listas no es un requisito.
os usuarios aferrados a programas de bases de datos encontraran en esta función un descanso $ pa&
espiritual para alcan&ar su felicidad en 7. A!ora crearemos un data frame con todos los vectores !asta
el momento creados.
5paHespiritual 6- data.4rame5numerico3 logico3 caracteres3 4actores77
as listas confieren una gran venta-a sobre todos los demás tipos de ob-etos !asta el momento
utili&ados. Esta venta-a es su gran fle,ibilidad con respecto a la información almacenada dentro de ella.
En este caso podemos almacenar cualquier cantidad de datos ia importar la cantidad, modo o clase.
+reemos una lista de todos los ob-etos que !emos creado !asta el momento
5lista' 6- list5numerico3 caracteres3 logico3 matriH'3 matriH)3 paHespiritual77
lista) 6- list5numericAnumerico3 characterAcaracteres3logicalA logico3
4rameApaHespiritual77
+asi todas las funciones default de 7 devuelven ob-etos en forma de lista. a propiedad más funcional
para los cuadros de datos $ listas es el nombre de los componentes por los que están formados los
ob-etos, se despliegan con names. Esta función nos será de muc!a utilidad posteriormente.
,uevas 4unciones: data.4rame3 list3 names
8ruebas ) 4oerción de ti#os
#odemos poner a prueba si un ob-eto pertenece a cierta clase o modo usando la función i s. ,. En caso
de que quisi/ramos que 7 interprete información con otro modo o clase entonces usamos las funciones
de coerción as. ,. os niveles de los factores pueden ser coercionados a números, los números a
caracteres, pero no podemos coercionar caracteres a números. Al coercionar números comple-os
5comple,6 a números a numeric, la parte imaginaria se pierde. A continuación una tabla e,traída del
79"oo: de +ra%le$ 5AB@A60
Ai#o 8rueba 4oerción
!rray is.array as.array
Character is.character as.character
Complex is.complex as.complex
ata4rame is.data.4rame as.data.4rame
ouble is.doble as.doble
Gactor is.4actor as.4actor
0ist is.list as.list
0ogical is.logical as.logical
Datrix is.matrix as.matrix
,umeric is.numeric as.numeric
2a& is.ra& as.ra&
-ime series is.ts as.ts
@ector is.vector as.vector