Cómo decirle a R qué hacer

Orientándose en RStudio

En principio se podría escribir código de R con el Bloc de Notas y luego ejecutarlo, pero nosotros vamos a usar RStudio, que brinda una interfaz gráfica con un montón de herramientas extra para hacernos la vida más fácil.

Cuando abras RStudio te vas a encontrar con una ventana con cuatro paneles como esta:

Ventana de RStudio

Los dos paneles de la izquierda son las dos formas principales de interactuar con R. El panel de abajo a la izquierda es la consola. Es el lugar que te permite conversar con R. Podés escribir comandos que se van a ejecutar inmediátamente cuando apretes Enter y cuyo resultado se va a mostrar en la consola.

Por ejemplo, hacé click en la consola, escribí 2 + 2 y apretá Enter. Vas a ver algo como esto:

2 + 2
## [1] 4

Le dijiste a R que sume 2 y 2 y R te devolvió el resultado: 4 (no te preocupes del [1] por ahora). Eso está bueno si querés hacer una cuenta rápida o chequear algo pequeño, pero no sirve para hacer un análisis complejo y reproducible.

En el panel de arriba a la izquierda tenemos esencialmente un editor de texto. Ahí es donde vas a escribir si querés guardar instrucciones para ejecutarlas en otro momento y donde vas a estar el 87% de tu tiempo usando R.

A la derecha hay paneles más bien informativos y que tienen varias solapas que vamos a ir descubriendo a su tiempo. Para destacar, arriba a la derecha está el “environment”, que es forma de ver qué es lo que está “pensando” R en este momento. Ahí vas a poder ver un listado de los datos que están abiertos y otros objetos que están cargados en la memoria de R. Ahora está vacío porque todavía no cargaste ni creaste ningún dato. Abajo a la derecha tienen un explorador de archivos rudimentario y también el panel de ayuda, que es donde vas a pasar el otro 13% del tiempo usando R.

Entonces, para resumir:

La cocina de RStudio

Extendiendo R

R es un lenguaje creado por estadísticos y pensado para la estadística, por lo que ya viene con un montón de métodos estadísticos incorporados, como mean() o median(). Pero hay tantos métodos estadísticos como gente haciendo estadística así que es imposible que estén todos. La solución es que podés “agregarle” a R funciones que no vienen instaladas por defecto pero que escribieron otras personas en forma de “paquetes”. Este es el poder de la comunidad de R!

Para instalar paquetes de R, la forma mas fácil es con la función install.packages(). Entonces, por ejemplo,

install.packages("readr")

te instala un paquete que contiene funciones para leer datos. Luego, usando el comando

library(readr)

le decís a R que cargue las funciones que vienen en el paquete readr para usarlas.

Nota: Si cerrás y volveś a abrir R, vas a tener que correr el comando library(readr) nuevamente para acceder a las funciones del paquete readr

Buscando ayuda

Entre la enorme cantidad de funciones que tiene R por defecto y las que se pueden agregar instalando paquetes externos, es imposible recordar todas las funciones y cómo usarlas. Por eso, una gran proporción del tiempo que uses R vas a pasarlo leyendo documentación de funciones, ya sea para aprender a usarlas o porque no te acordás algún detalle.

Para acceder a la ayuda de una función simplemente usamos el signo de pregunta:

?sin

Nota: Otra forma de acceder a la ayuda de una función es poniendo el cursor sobre ella y apretando F1

Esto va a abrir el documento de ayuda para la función sin() que, como verás, tiene la documentación de las funciones trigonométricas que trae R por defecto. Todas las ayudas de R vienen divididas en secciones:

Description
Una descripción breve de la función o funciones que se documentan.
Usage
Nombre de los argumentos de la función. La mayoría de las funciones trigonométricas tienen un solo argumento, que se llama x. La función atan2() tiene dos argumentos, llamados x e y.
Arguments
Una descripción de cada argumento. En este caso x e y son vectores numéricos o complejos. Aunque todavía no sepas qué es un “vector”, de esta descripción ya podés intuir que las funciones trigonométricas aceptan números complejos.
Details
Una descripción detallada de las funciones. Por ejemplo, detalla qué es lo que devuelve la función atan2(), describe las unidades en las que tienen que estar x e y, etc..
Value
Describe qué tipo de valor devuelve la función.
Examples
(abajo de todo) Es la sección más importante y probablemente la que vas a buscar primero cuando te encuentres con una función nueva que no sabés cómo usar. Acá vas a encontrar código de R de que ejemplifica el uso típico de la función. Podes copiar y pegar el código en la consola y ver el resultado para entender como funciona.
(Otras secciones)
Pueden haber otras secciones que detallen distintas particularidades de la función, o referencias a los métodos implementados.

Desafío

Abrí y leé la ayuda de la función sd(). Puede que haya cosas que aún no entiendas, pero tratá de captar la idea general. ¿Qué hace esa función? ¿Qué argumentos acepta?

LS0tCnRpdGxlOiAiSW50cm9kdWNjacOzbiIKIyBkYXRlOiAiMjkvMDgvMjAyMCIKb3V0cHV0OiAKICBodG1sX2RvY3VtZW50OgogICAgY29kZV9kb3dubG9hZDogdHJ1ZQogICAgdG9jOiB0cnVlCiAgICB0b2NfZmxvYXQ6IHRydWUKICAgIGhpZ2hsaWdodDogdGFuZ28KLS0tCgoKIyMgQ8OzbW8gZGVjaXJsZSBhIFIgcXXDqSBoYWNlcgoKIyMjIE9yaWVudMOhbmRvc2UgZW4gUlN0dWRpbwoKRW4gcHJpbmNpcGlvIHNlIHBvZHLDrWEgZXNjcmliaXIgY8OzZGlnbyBkZSBSIGNvbiBlbCBCbG9jIGRlIE5vdGFzIHkgbHVlZ28gZWplY3V0YXJsbywgcGVybyBub3NvdHJvcyB2YW1vcyBhIHVzYXIgUlN0dWRpbywgcXVlIGJyaW5kYSB1bmEgaW50ZXJmYXogZ3LDoWZpY2EgY29uICB1biBtb250w7NuIGRlIGhlcnJhbWllbnRhcyBleHRyYSBwYXJhIGhhY2Vybm9zIGxhIHZpZGEgbcOhcyBmw6FjaWwuIAoKQ3VhbmRvIGFicmFzIFJTdHVkaW8gdGUgdmFzIGEgZW5jb250cmFyIGNvbiB1bmEgdmVudGFuYSBjb24gY3VhdHJvIHBhbmVsZXMgY29tbyBlc3RhOgoKIVtWZW50YW5hIGRlIFJTdHVkaW9dKGltZy9yc3R1ZGlvLnBuZykKCkxvcyBkb3MgcGFuZWxlcyBkZSBsYSBpenF1aWVyZGEgc29uIGxhcyBkb3MgZm9ybWFzIHByaW5jaXBhbGVzIGRlIGludGVyYWN0dWFyIGNvbiBSLiBFbCBwYW5lbCBkZSBhYmFqbyBhIGxhIGl6cXVpZXJkYSBlcyAqKmxhIGNvbnNvbGEqKi4gRXMgZWwgbHVnYXIgcXVlIHRlIHBlcm1pdGUgKmNvbnZlcnNhciogY29uIFIuIFBvZMOpcyBlc2NyaWJpciBjb21hbmRvcyBxdWUgc2UgdmFuIGEgZWplY3V0YXIgaW5tZWRpw6F0YW1lbnRlIGN1YW5kbyBhcHJldGVzIEVudGVyIHkgY3V5byByZXN1bHRhZG8gc2UgdmEgYSBtb3N0cmFyIGVuIGxhIGNvbnNvbGEuIAoKUG9yIGVqZW1wbG8sIGhhY8OpIGNsaWNrIGVuIGxhIGNvbnNvbGEsIGVzY3JpYsOtIGAyICsgMmAgeSBhcHJldMOhIEVudGVyLiBWYXMgYSB2ZXIgYWxnbyBjb21vIGVzdG86CgpgYGB7cn0KMiArIDIKYGBgCgpMZSBkaWppc3RlIGEgUiBxdWUgc3VtZSAyIHkgMiB5IFIgdGUgZGV2b2x2acOzIGVsIHJlc3VsdGFkbzogNCAobm8gdGUgcHJlb2N1cGVzIGRlbCBgWzFdYCBwb3IgYWhvcmEpLiBFc28gZXN0w6EgYnVlbm8gc2kgcXVlcsOpcyBoYWNlciB1bmEgY3VlbnRhIHLDoXBpZGEgbyBjaGVxdWVhciBhbGdvIHBlcXVlw7FvLCBwZXJvIG5vIHNpcnZlIHBhcmEgaGFjZXIgdW4gYW7DoWxpc2lzIGNvbXBsZWpvIHkgcmVwcm9kdWNpYmxlLiAKCkVuIGVsIHBhbmVsIGRlIGFycmliYSBhIGxhIGl6cXVpZXJkYSB0ZW5lbW9zIGVzZW5jaWFsbWVudGUgdW4gZWRpdG9yIGRlIHRleHRvLiBBaMOtIGVzIGRvbmRlIHZhcyBhIGVzY3JpYmlyIHNpIHF1ZXLDqXMgZ3VhcmRhciBpbnN0cnVjY2lvbmVzIHBhcmEgZWplY3V0YXJsYXMgZW4gb3RybyBtb21lbnRvIHkgZG9uZGUgdmFzIGEgZXN0YXIgZWwgODclIGRlIHR1IHRpZW1wbyB1c2FuZG8gUi4gCgpBIGxhIGRlcmVjaGEgaGF5IHBhbmVsZXMgbcOhcyBiaWVuIGluZm9ybWF0aXZvcyB5IHF1ZSB0aWVuZW4gdmFyaWFzIHNvbGFwYXMgcXVlIHZhbW9zIGEgaXIgZGVzY3VicmllbmRvIGEgc3UgdGllbXBvLiBQYXJhIGRlc3RhY2FyLCBhcnJpYmEgYSBsYSBkZXJlY2hhIGVzdMOhIGVsICJlbnZpcm9ubWVudCIsIHF1ZSBlcyBmb3JtYSBkZSB2ZXIgcXXDqSBlcyBsbyBxdWUgZXN0w6EgInBlbnNhbmRvIiBSIGVuIGVzdGUgbW9tZW50by4gQWjDrSB2YXMgYSBwb2RlciB2ZXIgdW4gbGlzdGFkbyBkZSBsb3MgZGF0b3MgcXVlIGVzdMOhbiBhYmllcnRvcyB5IG90cm9zIG9iamV0b3MgcXVlIGVzdMOhbiBjYXJnYWRvcyBlbiBsYSBtZW1vcmlhIGRlIFIuIEFob3JhIGVzdMOhIHZhY8OtbyBwb3JxdWUgdG9kYXbDrWEgbm8gY2FyZ2FzdGUgbmkgY3JlYXN0ZSBuaW5nw7puIGRhdG8uIEFiYWpvIGEgbGEgZGVyZWNoYSB0aWVuZW4gdW4gZXhwbG9yYWRvciBkZSBhcmNoaXZvcyBydWRpbWVudGFyaW8geSB0YW1iacOpbiBlbCBwYW5lbCBkZSBheXVkYSwgcXVlIGVzIGRvbmRlIHZhcyBhIHBhc2FyIGVsIG90cm8gMTMlIGRlbCB0aWVtcG8gdXNhbmRvIFIuCgpFbnRvbmNlcywgcGFyYSByZXN1bWlyOiAKCiFbTGEgY29jaW5hIGRlIFJTdHVkaW9dKGltZy9yc3R1ZGlvLWNvY2luYS5wbmcpCgoKIyMjIEV4dGVuZGllbmRvIFIKClIgZXMgdW4gbGVuZ3VhamUgY3JlYWRvIHBvciBlc3RhZMOtc3RpY29zIHkgcGVuc2FkbyBwYXJhIGxhIGVzdGFkw61zdGljYSwgcG9yIGxvIHF1ZSB5YSB2aWVuZSBjb24gdW4gbW9udMOzbiBkZSBtw6l0b2RvcyBlc3RhZMOtc3RpY29zIGluY29ycG9yYWRvcywgY29tbyBgbWVhbigpYCBvIGBtZWRpYW4oKWAuIFBlcm8gaGF5IHRhbnRvcyBtw6l0b2RvcyBlc3RhZMOtc3RpY29zIGNvbW8gZ2VudGUgaGFjaWVuZG8gZXN0YWTDrXN0aWNhIGFzw60gcXVlIGVzIGltcG9zaWJsZSBxdWUgZXN0w6luIHRvZG9zLiBMYSBzb2x1Y2nDs24gZXMgcXVlIHBvZMOpcyAiYWdyZWdhcmxlIiBhIFIgZnVuY2lvbmVzIHF1ZSBubyB2aWVuZW4gaW5zdGFsYWRhcyBwb3IgZGVmZWN0byBwZXJvIHF1ZSBlc2NyaWJpZXJvbiBvdHJhcyBwZXJzb25hcyBlbiBmb3JtYSBkZSAicGFxdWV0ZXMiLiBFc3RlIGVzIGVsIHBvZGVyIGRlICoqbGEgY29tdW5pZGFkIGRlIFIqKiEgCgpQYXJhIGluc3RhbGFyIHBhcXVldGVzIGRlIFIsIGxhIGZvcm1hIG1hcyBmw6FjaWwgZXMgY29uIGxhIGZ1bmNpw7NuIGBpbnN0YWxsLnBhY2thZ2VzKClgLiBFbnRvbmNlcywgcG9yIGVqZW1wbG8sIAoKYGBge3IsIGV2YWw9RkFMU0V9Cmluc3RhbGwucGFja2FnZXMoInJlYWRyIikKYGBgCgp0ZSBpbnN0YWxhIHVuIHBhcXVldGUgcXVlIGNvbnRpZW5lIGZ1bmNpb25lcyBwYXJhIGxlZXIgZGF0b3MuIEx1ZWdvLCB1c2FuZG8gZWwgY29tYW5kbwoKYGBge3J9CmxpYnJhcnkocmVhZHIpCmBgYAoKbGUgZGVjw61zIGEgUiBxdWUgY2FyZ3VlIGxhcyBmdW5jaW9uZXMgcXVlIHZpZW5lbiBlbiBlbCBwYXF1ZXRlIHJlYWRyIHBhcmEgdXNhcmxhcy4KCgo6Ojogey5hbGVydCAuYWxlcnQtc3VjY2Vzc30KKipOb3RhKio6IFNpIGNlcnLDoXMgeSB2b2x2ZcWbIGEgYWJyaXIgUiwgdmFzIGEgdGVuZXIgcXVlIGNvcnJlciBlbCBjb21hbmRvIGBsaWJyYXJ5KHJlYWRyKWAgbnVldmFtZW50ZSBwYXJhIGFjY2VkZXIgYSBsYXMgZnVuY2lvbmVzIGRlbCBwYXF1ZXRlIHJlYWRyCjo6OgoKCiMjIyBCdXNjYW5kbyBheXVkYQoKRW50cmUgbGEgZW5vcm1lIGNhbnRpZGFkIGRlIGZ1bmNpb25lcyBxdWUgdGllbmUgUiBwb3IgZGVmZWN0byB5IGxhcyBxdWUgc2UgcHVlZGVuIGFncmVnYXIgaW5zdGFsYW5kbyBwYXF1ZXRlcyBleHRlcm5vcywgZXMgaW1wb3NpYmxlIHJlY29yZGFyIHRvZGFzIGxhcyBmdW5jaW9uZXMgeSBjw7NtbyB1c2FybGFzLiBQb3IgZXNvLCB1bmEgZ3JhbiBwcm9wb3JjacOzbiBkZWwgdGllbXBvIHF1ZSB1c2VzIFIgdmFzIGEgcGFzYXJsbyBsZXllbmRvIGRvY3VtZW50YWNpw7NuIGRlIGZ1bmNpb25lcywgeWEgc2VhIHBhcmEgYXByZW5kZXIgYSB1c2FybGFzIG8gcG9ycXVlIG5vIHRlIGFjb3Jkw6FzIGFsZ8O6biBkZXRhbGxlLiAKClBhcmEgYWNjZWRlciBhIGxhIGF5dWRhIGRlIHVuYSBmdW5jacOzbiBzaW1wbGVtZW50ZSB1c2Ftb3MgZWwgc2lnbm8gZGUgcHJlZ3VudGE6CgpgYGB7cn0KP3NpbgpgYGAKCjo6OiB7LmFsZXJ0IC5hbGVydC1zdWNjZXNzfQoqKk5vdGEqKjogT3RyYSBmb3JtYSBkZSBhY2NlZGVyIGEgbGEgYXl1ZGEgZGUgdW5hIGZ1bmNpw7NuIGVzIHBvbmllbmRvIGVsIGN1cnNvciBzb2JyZSBlbGxhIHkgYXByZXRhbmRvIEYxCjo6OgoKCkVzdG8gdmEgYSBhYnJpciBlbCBkb2N1bWVudG8gZGUgYXl1ZGEgcGFyYSBsYSBmdW5jacOzbiBgc2luKClgIHF1ZSwgY29tbyB2ZXLDoXMsIHRpZW5lIGxhIGRvY3VtZW50YWNpw7NuIGRlIGxhcyBmdW5jaW9uZXMgdHJpZ29ub23DqXRyaWNhcyBxdWUgdHJhZSBSIHBvciBkZWZlY3RvLiBUb2RhcyBsYXMgYXl1ZGFzIGRlIFIgdmllbmVuIGRpdmlkaWRhcyBlbiBzZWNjaW9uZXM6CgpEZXNjcmlwdGlvbgo6IFVuYSBkZXNjcmlwY2nDs24gYnJldmUgZGUgbGEgZnVuY2nDs24gbyBmdW5jaW9uZXMgcXVlIHNlIGRvY3VtZW50YW4uIAoKClVzYWdlCjogTm9tYnJlIGRlIGxvcyBhcmd1bWVudG9zIGRlIGxhIGZ1bmNpw7NuLiBMYSBtYXlvcsOtYSBkZSBsYXMgZnVuY2lvbmVzIHRyaWdvbm9tw6l0cmljYXMgdGllbmVuIHVuIHNvbG8gYXJndW1lbnRvLCBxdWUgc2UgbGxhbWEgYHhgLiBMYSBmdW5jacOzbiBgYXRhbjIoKWAgdGllbmUgZG9zIGFyZ3VtZW50b3MsIGxsYW1hZG9zIGB4YCBlIGB5YC4KCgpBcmd1bWVudHMKOiBVbmEgZGVzY3JpcGNpw7NuIGRlIGNhZGEgYXJndW1lbnRvLiBFbiBlc3RlIGNhc28gYHhgIGUgYHlgIHNvbiB2ZWN0b3JlcyBudW3DqXJpY29zIG8gY29tcGxlam9zLiBBdW5xdWUgdG9kYXbDrWEgbm8gc2VwYXMgcXXDqSBlcyB1biAidmVjdG9yIiwgZGUgZXN0YSBkZXNjcmlwY2nDs24geWEgcG9kw6lzIGludHVpciBxdWUgbGFzIGZ1bmNpb25lcyB0cmlnb25vbcOpdHJpY2FzIGFjZXB0YW4gbsO6bWVyb3MgY29tcGxlam9zLiAKCgpEZXRhaWxzCjogVW5hIGRlc2NyaXBjacOzbiBkZXRhbGxhZGEgZGUgbGFzIGZ1bmNpb25lcy4gUG9yIGVqZW1wbG8sIGRldGFsbGEgcXXDqSBlcyBsbyBxdWUgZGV2dWVsdmUgbGEgZnVuY2nDs24gYGF0YW4yKClgLCBkZXNjcmliZSBsYXMgdW5pZGFkZXMgZW4gbGFzIHF1ZSB0aWVuZW4gcXVlIGVzdGFyIGB4YCBlIGB5YCwgZXRjLi4gCgoKVmFsdWUKOiBEZXNjcmliZSBxdcOpIHRpcG8gZGUgdmFsb3IgZGV2dWVsdmUgbGEgZnVuY2nDs24uCgoKRXhhbXBsZXMKOiAoYWJham8gZGUgdG9kbykgRXMgbGEgc2VjY2nDs24gbcOhcyBpbXBvcnRhbnRlIHkgcHJvYmFibGVtZW50ZSBsYSBxdWUgdmFzIGEgYnVzY2FyIHByaW1lcm8gY3VhbmRvIHRlIGVuY3VlbnRyZXMgY29uIHVuYSBmdW5jacOzbiBudWV2YSBxdWUgbm8gc2Fiw6lzIGPDs21vIHVzYXIuIEFjw6EgdmFzIGEgZW5jb250cmFyIGPDs2RpZ28gZGUgUiBkZSBxdWUgZWplbXBsaWZpY2EgZWwgdXNvIHTDrXBpY28gZGUgbGEgZnVuY2nDs24uIFBvZGVzIGNvcGlhciB5IHBlZ2FyIGVsIGPDs2RpZ28gZW4gbGEgY29uc29sYSB5IHZlciBlbCByZXN1bHRhZG8gcGFyYSBlbnRlbmRlciBjb21vIGZ1bmNpb25hLiAKCgooT3RyYXMgc2VjY2lvbmVzKQo6IFB1ZWRlbiBoYWJlciBvdHJhcyBzZWNjaW9uZXMgcXVlIGRldGFsbGVuIGRpc3RpbnRhcyBwYXJ0aWN1bGFyaWRhZGVzIGRlIGxhIGZ1bmNpw7NuLCBvIHJlZmVyZW5jaWFzIGEgbG9zIG3DqXRvZG9zIGltcGxlbWVudGFkb3MuIAoKOjo6IHsuYWxlcnQgLmFsZXJ0LWluZm99CioqRGVzYWbDrW8qKgoKQWJyw60geSBsZcOpIGxhIGF5dWRhIGRlIGxhIGZ1bmNpw7NuIGBzZCgpYC4gUHVlZGUgcXVlIGhheWEgY29zYXMgcXVlIGHDum4gbm8gZW50aWVuZGFzLCBwZXJvIHRyYXTDoSBkZSBjYXB0YXIgbGEgaWRlYSBnZW5lcmFsLiDCv1F1w6kgaGFjZSBlc2EgZnVuY2nDs24/IMK/UXXDqSBhcmd1bWVudG9zIGFjZXB0YT8KOjo6CgoKPGRpdiBjbGFzcz0iYnRuLWdyb3VwIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iTmF2ZWdhY2nDs24iPgogIDxhIGhyZWY9ICJob2phLWRlLXJ1dGEuaHRtbCIgY2xhc3MgPSAiYnRuIGJ0bi1wcmltYXJ5Ij5Ib2phIGRlIFJ1dGE8L2E+CiAgPGEgaHJlZj0gIjAyLXByb3llY3Rvcy5odG1sIiBjbGFzcyA9ICJidG4gYnRuLXByaW1hcnkiPlNpZ3VpZW50ZTwvYT4KPC9kaXY+