Saltar al contenido principal
LibreTexts Español

2.6: Cómo comenzar con R

  • Page ID
    149976
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Lanzamiento de R

    Normalmente, inicia R desde el icono del escritorio o el menú de la aplicación. Para lanzar R desde el terminal, escriba:

    Código\(\PageIndex{1}\) (R):

    $ R

    —y verás la pantalla R.

    Incluso es posible lanzar R en el servidor UNIX remoto sin que se ejecute ningún sistema gráfico. En ese caso, todas las parcelas se escribirán en un archivo PDF, Rplots.pdf que aparecerá en el directorio de trabajo

    Si sabes trabajar con R, es una buena idea revisar la nueva instalación escribiendo, por ejemplo, plot (1:20) para comprobar si los gráficos funcionan. Si eres novato a R, pasa a la siguiente sección.

    Primeros pasos

    Después de que abriste R con éxito, es bueno entender cómo salir. Después de ingresar paréntesis vacíos, asegúrese de presionar Enter y responder “n” o “No” en la pregunta:

    Código\(\PageIndex{2}\) (R):

    q()
    Save workspace image? [y/n/c]: n

    Este sencillo ejemplo ya muestra que cualquier comando (o función, esto es casi lo mismo) en R tiene un argumento dentro de corchetes redondos, paréntesis. Si no hay argumento, todavía necesitas estos paréntesis. Si los olvidas, R mostrará la definición de la función en lugar de abandonar:

    Código\(\PageIndex{3}\) (R):

    q
    function (save = "default", status = 0, runLast = TRUE)
    .Internal(quit(save, status, runLast))
    <bytecode: 0x28a5708>
    <environment: namespace:base>
    

    (Para los curiosos, “bytecode” significa que esta función fue compilada para la velocidad, “ambiente” muestra la manera de llamar a esta función. Si quieres conocer el código de función, no siempre es trabajo llamarlo sin paréntesis; consulta la tarjeta de referencia para conocer métodos más avanzados.)

    ¿Cómo saber más sobre la función? Llame a la ayuda:

    Código\(\PageIndex{4}\) (R):

    help(q)

    o simplemente

    Código\(\PageIndex{5}\) (R):

    ?q

    Y verás la ventana separada o (bajo Linux) el texto de ayuda en la misma ventana (para salir de esta ayuda, presiona q)\(^{[1]}\).

    .)

    Ahora volvamos a la? q. Si lees este texto de ayuda a fondo, podrías concluir que para salir de R sin que te pidan nada, es posible que quieras ingresar q (“no”). Por favor pruébalo.

    “no” es el argumento de la función de salida q (). En realidad, no exactamente el argumento sino su valor, porque en algunos casos se puede omitir el nombre del argumento. El nombre del argumento es save para que pueda escribir q (save="no”). De hecho, la mayoría de las funciones R parecen function (name="value”); vea más detalle en la Figura\(\PageIndex{1}\).

    Screen Shot 2019-01-05 a las 10.45.14 PM.png
    Figura\(\PageIndex{1}\) Estructura del comando R.

    R es bastante liberal en cuanto a los argumentos. Recibirás las mismas respuestas si ingresas alguna de estas variantes:

    Código\(\PageIndex{6}\) (R):

    round(1.5, digits=0)
    round(1.5, d=0)
    round(d=0, 1.5)
    round(1.5, 0)
    round(1.5,)
    round(1.5)

    (\(^{[2]}\)Como ve, los argumentos coinciden por nombre y/o por posición. En la salida, R frecuentemente imprime algo así como [1], es solo un índice de número (s) resultante (s). ¿Qué es round ()? ¿Correr? ronda para averiguarlo.)

    Es posible meterse con argumentos siempre y cuando R “entienda” lo que quiere. Por favor, experimente más usted mismo y descubra por qué esto

    Código\(\PageIndex{7}\) (R):

    round(0, 1.5)

    da el valor que probablemente no quieras.

    Si quieres conocer los argumentos de alguna función, junto con sus valores predeterminados, ejecuta args ():

    Código\(\PageIndex{8}\) (R):

    args(round)
    args(q)

    También hay una función example () que es bastante útil, especialmente cuando aprendes a trazar con R. Para ejecutar ejemplos suministrados con la función, escriba example (function). Además no se olvide de comprobar la función demo () que da salida a la lista de posibles demostraciones, algunas de ellas son realmente útiles, diciendo, demo (colores).

    Aquí R muestra uno de sus principios básicos que vino del lenguaje Perl: siempre hay más de una manera de hacerlo. Hay muchas maneras de recibir una ayuda en R!

    Entonces por defecto es hacer la pregunta de “guardar” al salir. Pero, ¿por qué se lo pide R? Y ¿qué pasará si contestas “sí”? En ese caso, se escribirán dos archivos en el directorio de trabajo R: archivo binario .rData y archivo textual .Rhistory (sí, sus nombres comienzan con un punto). Primero contiene todos los objetos que creó durante la sesión R. Segundo contiene el historial completo de comandos ingresados. Estos archivos se cargarán automáticamente si inicia R desde el mismo directorio, y aparecerá el siguiente mensaje:

    [Espacio de trabajo guardado anteriormente restaurado]

    Frecuentemente, este no es un comportamiento deseable, especialmente si solo estás aprendiendo R y por lo tanto a menudo cometes errores. Siempre y cuando estudies con este libro, te recomendamos encarecidamente que respondas “no”.

    Si por casualidad respondió “sí” a la pregunta al final de la sesión R anterior, es posible que desee eliminar los archivos no deseados:

    Código\(\PageIndex{9}\) (R):

    unlink(c(".RData", ".Rhistory"))

    (¡Ten mucho cuidado aquí porque R borra archivos silenciosamente! En macOS, los nombres de los archivos pueden ser diferentes; además, es mejor desmarcar Leer archivo de historial al inicio en el menú Preferencias.)

    Si estás aburrido de responder preguntas una y otra vez, y al mismo tiempo no quieres ingresar q (“no”), hay una tercera vía. Supply R starting command con la opción —no-save (podría hacerse de manera diferente en diferentes sistemas operativos), y se deshará de él\(^{[3]}\).

    Cómo escribir

    Cuando trabajas en R, se podría llamar al comando anterior si presionas la tecla “flecha arriba” (\(\uparrow\)). Esto es extremadamente útil y ahorra mucho tiempo, especialmente cuando se necesita ejecutar el comando similar al anterior. En algunos sistemas, también hay búsqueda hacia atrás (Ctrl+R en Linux) que es incluso más eficiente que la flecha hacia arriba.

    Si tecleaste erróneamente el comando largo y quieres borrarlo sin suministrarlo a R, existe la tecla Ctrl+U (funciona en Linux y Windows).

    Si ejecuta R en el terminal que no tiene una forma aparente de desplazarse, utilice Mayús+PgUp y Mayús+PGDN.

    Otra clave realmente útil es la Tab. Para ver cómo funciona, empieza a escribir comando largo como read.t... y luego presiona Tab. Se llamará finalización con sugiere cómo continuar. ¡La finalización funciona no solo para comandos, sino también para objetos, argumentos de comando e incluso para nombres de archivo! Para invocar este último, comience a escribir read.table (” y luego presione Tab una o dos veces; se mostrarán todos los archivos del directorio de trabajo.

    Recuerda que todos los corchetes (llaves, paréntesis) y comillas deben estar siempre cerrados. Una de las mejores formas de asegurarse de ello es ingresar los corchetes de apertura y cierre juntos, y luego devolver el cursor al medio. En realidad, el gráfico R en macOS hace esto por defecto.

    Empareja también todas las cotizaciones. R acepta dos tipos de cotizaciones, simples '...' y doble “...” pero deben ser emparejados con cotización del mismo tipo.

    Buena pregunta es cuándo necesitas cotizaciones. En general, las comillas pertenecen a cadenas de caracteres. La regla general es que los objetos externos a R necesitan comillas mientras que los objetos internos podrían llamarse sin comillas.

    R es sensible al caso de los símbolos. ¡Los comandos ls () y Ls () son diferentes! Sin embargo, los espacios no juegan ningún papel. Estos comandos son los mismos:

    Código\(\PageIndex{10}\) (R):

    round (1.5, digits=0)
    round(1.5, digits=0)
    round ( 1.5 , digits = 0 )

    No tengas miedo de cometer errores. Por el contrario,

    ¡Comete tantos errores como sea posible!

    Cuantos más errores cometas cuando aprendes, menos haces cuando empiezas a trabajar con R por tu cuenta.

    R es frecuentemente literal cuando ve un error, y sus mensajes de error te ayudarán a descifrarlo. Por el contrario, R es perfectamente silencioso cuando te va bien. Si tu entrada no tiene errores, R generalmente no dice nada.

    Por cierto, es muy difícil chocar R. Sin embargo, si tu R parece colgarse, presiona el botón Esc (en Linux, prueba Ctrl+C en su lugar).

    Otro llamado más a los usuarios de este libro:

    ¡Experimento!

    Prueba comandos desconocidos, cambia opciones, números, nombres, elimina paréntesis, carga cualquier dato, ejecuta código desde Internet, desde la ayuda, desde tu cerebro. Cuanto más experimentes, mejor aprendes R.

    Cómo jugar con R

    Ahora bien, cuando conocemos lo básico, es momento de hacer algo más interesante en R. Aquí está la tarea simple: convertir la secuencia de números del 1 al 9 en la tabla con tres columnas. En el software de hoja de cálculo o estadística visual, habrá varios pasos: (1) hacer dos nuevas columnas, (2—3) copiar las dos piezas en el portapapeles y pegarlas y (4) eliminar filas adicionales. En R, este es solo un comando:

    Código\(\PageIndex{11}\) (R):

    bb <- matrix(1:9, ncol=3)
    bb

    (Símbolo <- es un operador de asignación, se lee de derecha a izquierda. bb es un nuevo objeto R (es una buena costumbre nombrar objetos con letras dobles, menos posibilidades de cruzarse con oblectos R existentes). Pero, ¿qué es 1:9? \(^{[4]}\)Encuéntralo tú mismo. Pista: se explica en pocas páginas de esta.)

    Nuevamente de lo anterior: ¿Cómo seleccionar la muestra de 100 árboles en el gran bosque? Si recuerdas, nuestra respuesta fue producir 100 pares aleatorios de las coordenadas. Si este bosque se divide en 10,000 cuadrados (\(100\times100\)), entonces la muestra requerida podría verse así:

    Código\(\PageIndex{12}\) (R):

    coordinates <- expand.grid(1:100, 1:100)
    sampled.rows <- sample(1:nrow(coordinates), 100)
    coordinates[sampled.rows, ]

    (Primero, expand.grid () se utilizó anteriormente para crear las 10,000 combinaciones de números cuadrados. Luego, el poderoso comando sample () selecciona aleatoriamente 100 filas de cualquier número de filas que haya en las coordenadas de la tabla. Tenga en cuenta que sus resultados probablemente serán diferentes ya que sample () usa el generador de números aleatorios. Finalmente, esta muestras.filas se utilizó como índice para seleccionar aleatoriamente 100 filas (pares de coordenadas) de 10,000 combinaciones. Lo que te queda ahora es ir al bosque y encontrar estos árboles :-))

    Juguemos ahora a los dados y a las cartas con R:

    Código\(\PageIndex{13}\) (R):

    dice <- as.vector(outer(1:6, 1:6, paste))
    sample(dice, 4, replace=TRUE)
    sample(dice, 5, replace=TRUE)
    cards <- paste(rep(c(6:10,"V","D","K","T"), 4),
    c("Tr","Bu","Ch","Pi"))
    sample(cards, 6)
    sample(cards, 6)

    (Observe aquí el comando outer () que combina valores, paste () que se une al texto, rep () que repite algunos valores, y también el argumento replace=true (por defecto, replace es FALSE). ¿Qué es replace=false? Por favor averígualo. Nuevamente, tus resultados podrían ser diferentes de lo que se muestra aquí. Tenga en cuenta también que VERDADERO o FALSO siempre deben estar completamente mayúsculas.)

    Calculadora de maleza

    Pero la forma más sencilla es usar R como calculadora avanzada:

    Código\(\PageIndex{14}\) (R):

    2+2
    2+.2

    (Tenga en cuenta que puede omitir el cero inicial en números decimales.)

    El ejemplo más complicado, “log10 (((sqrt (sum (c (2, 2)))) ^2) *2.5)” se calculará de la siguiente manera:

    1. El vector me va a crear a partir de dos dos: c (2, 2).
    2. Se contará la suma de sus elementos: 2+2=4.
    3. Raíz cuadrada calculada: sqrt (4) =2.
    4. Se eleva a la potencia de 2: 2^2=4.
    5. El resultado se multiplica por 2.5: 4*2.5=10.
    6. Se calcula el logaritmo decimal: log10 (10) =1.

    Como ves, es posible incrustar pares de paréntesis. Es una buena idea contar los paréntesis de apertura y cierre antes de presionar Enter; estos números deben ser iguales. Después de la sumisión, R los abrirá, par por par, desde el par más profundo hasta el más externo.

    Entonces las expresiones R son de alguna manera similares a la muñeca rusa, o a la cebolla, o a la alcachofa (Figura\(\PageIndex{2}\)), y para analizarlas, se debe pelarla.

    Screen Shot 2019-01-05 at 11.02.47 PM.png
    Figura\(\PageIndex{2}\) Se puede pensar en la sintaxis R como de “alcachofa”.

    Aquí también es importante decir que R (similar a su amigo TeX) pertenece a uno de los software más profundamente pensados. En esencia, el paquete R “base” cubre casi el 95% de las necesidades del trabajo común de manejo de datos y estadísticas y, por lo tanto, las herramientas externas suelen ser redundantes. Es prudente mantener las cosas simples con R.

    Si no hay paréntesis, R utilizará reglas de precedencia que son similares a las reglas conocidas de la secundaria.

    Por ejemplo, en 2+3*5 R multiplicará primero (3*5=15), y sólo entonces calculará la suma (2+15=17). Por favor compruébalo tú mismo en R ¿Cómo hacer el resultado 25? Agregar paréntesis.

    Alimentemos algo matemáticamente ilegal a R. Por ejemplo, raíz cuadrada o logaritmo de\(-1\):

    Código\(\PageIndex{15}\) (R):

    log(-1)

    Si pensabas que R se estrellará, eso estuvo mal. En su lugar, hace a Nan. NAn no es un número, una de palabras reservadas.

    ¿Qué pasa con la división por cero?

    Código\(\PageIndex{16}\) (R):

    100/0

    Esta es otra palabra reservada, Inf, infinito.

    Referencias

    1. Hay comando Xpager () en la colección de comandos asmisc.r, permite ver ayuda en la ventana separada incluso si trabajas en terminal.

    2. Dentro de paréntesis inmediatamente después del ejemplo, vamos a proporcionar comentarios.

    3. Por cierto, en los sistemas Linux puede salir de R también con la tecla Ctrl+D, y en Windows con la tecla Crtl+Z.

    4. Por lo general, los ejercicios pequeños están en negrilla.


    This page titled 2.6: Cómo comenzar con R is shared under a Public Domain license and was authored, remixed, and/or curated by Alexey Shipunov via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.