SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Practica 1: Introduccion a R
                 ´                   ´



1.    Introducci´n
                o
   R es un lenguaje de alto nivel y un entorno para el an´lisis de datos y gr´-
                                                         a                   a
ficos. Puede descargarse libremente del sitio llamado CRAN (Comprehensive
R Archive Network) en la siguiente direcci´n: http://cran.r-project.org
                                           o
o bien, simplemente buscando CRAN en Google.




    Al llegar a la pantalla anterior seguid para descargar el programa la si-
guiente ruta: windows/base/R-2.7.2-win32.exe. Una vez instalado el progra-
ma en entorno Windows, lo que vemos es la interfaz RGui (GUI es Graphical
User Interface en ingl´s), con el s´
                       e           ımbolo > esperando la entrada de instruc-
ciones, tal y como puede apreciarse en la figura siguiente:




                                      1
El men´ principal contiene entradas t´
          u                               ıpicas de otras aplicaciones: Ar-
chivo, Editar, Visualizar, Ventanas y Ayuda, m´s otras dos Misc
                                                         a
y Paquetes. El men´ de Ayuda ser´ importante en esta fase inicial. Pa-
                     u               a
ra obtener esta ayuda podemos tambi´n optar por introducir instrucciones
                                      e
directamente por teclado. Introduce por ejemplo:

> help(vector)

   y aparecer´ una ventana de ayuda con informaci´n sobre el comando
               a                                     o
vector.
   Podemos acceder a la misma pantalla desde el men´ Ayuda/Funciones
                                                    u
R (texto), aparecer´ un cuadro en el que deberemos introducir la palabra
                     a
vector. Si no recordamos la graf´ de una expresi´n podemos utilizar la ex-
                                ıa              o
presi´n apropos poniendo entre par´ntesis, y entre comillas, la funci´n que
     o                             e                                 o
buscamos.




                                    2
que nos da las expresiones que contienen el t´rmino integer. Lo mismo se
                                                 e
puede conseguir con Ayuda/Sobre y en el cuadro de di´logo que aparece
                                                           a
introducimos integer.
    R es un lenguaje orientado a objetos. Uno de los m´s simples es vector.
                                                        a
Si queremos crear un vector con las componentes (2, 3, 8) y llamarlo x,
tecleamos
> x <- c(2, 3, 8)
    F´ıjate en que has de introducir el nombre del vector, x, los s´
                                                                   ımbolos <-,
la letra c (de concatenate en ingl´s), y por ultimo las coordenadas del vector
                                   e         ´
entre par´ntesis. Para ver el vector que hemos creado, simplemente, tecleamos
           e
su nombre:
> x
[1] 2 3 8
    Como ya se ha podido observar al crear el vector x, para hacer asignaci´-
                                                                            o
nes a las variables se utiliza una combinaci´n de los s´
                                            o          ımbolos < y - (gui´n).
                                                                          o
Y, en esta ultima versi´n, tambi´n podemos utilizar el signo =. El signo =
            ´            o         e
tambi´n se utilizar´ para asignar valores a par´metros en las funciones. En
       e            a                            a
la salida anterior [1] indica que el 2 que le sigue es el primer elemento del
vector. Si el vector ocupara m´s de una l´
                                a         ınea, cada una de las nuevas l´
                                                                        ıneas
empezar´ por [n], indicando n el lugar que ocupa dentro del vector la coor-
         ıa
denada que le sigue. Las componentes del vector se referencian por medio de
´
ındices entre corchetes.

                                      3
> x <- c(2, 3, 8)
> x

[1] 2 3 8

> x[2]

[1] 3

> x[3]

[1] 8

   Podemos asignar un nuevo valor a alguna de las componentes del vector
como se muestra en el siguiente ejemplo:

> x[2] <- -3
> x

[1]   2 -3    8

   Hemos reemplazado la segunda componente del vector x por el valor -3.
Nota: Para corregir una instrucci´n ya introducida, podemos acceder a ella
                                 o
pulsando la tecla de flecha hacia arriba, las veces que sea necesario. Para
dejar una instrucci´n a medias podemos pulsar la tecla Escape.
                   o


2.      Operaciones con vectores y fucniones
  a) Multiplicaci´n de un vector por un n´mero
                 o                       u

      > 2 * x

      [1]    4 -6 16

  b) Potencias

      > x^3

      [1]     8 -27 512

  c) Longitud Devuelve la dimensi´n de un vector
                                 o

      > length(x)

                                    4
[1] 3

d) Suma y sumas acumuladas Devuelve la suma de las componentes del
   vector y la suma acumulada de las componentes

  > sum(x)

  [1] 7

  > cumsum(x)

  [1]   2 -1   7

e) Valor m´ximo y m´
           a         ınimo Devuelven los valores m´ximo y m´
                                                  a        ınimo de
   las componentes de un vector

  > max(x)

  [1] 8

  > min(x)

  [1] -3

f) Media, mediana, cuasivarianza y cuasidesviaci´n t´
                                                o ıpica de las compo-
   nentes Calculan la media, mediana, cuasivarianza, y cuasidesviaci´n
                                                                    o
   t´
    ıpica de las componentes del vector

  > mean(x)

  [1] 2.333333

  > median(x)

  [1] 2

  > var(x)

  [1] 30.33333

  > sd(x)

  [1] 5.50757

                                 5
g) Producto de las componentes y productos acumulados

   > prod(x)

   [1] -48

   > cumprod(x)

   [1]    2   -6 -48

h) Cuartiles de x

   > quantile(x)

     0% 25%       50%   75% 100%
   -3.0 -0.5      2.0   5.0 8.0

i) Ordenaci´n creciente de las componentes del vector
           o

   > sort(x)

   [1] -3     2   8

j) Colocar las componentes de un vector en orden inverso a como han sido
   introducidas

   > rev(x)

   [1]   8 -3     2

   ¿C´mo ordenar´ en orden decreciente?
     o          ıas

k) Suma de vectores

   > x <- c(2, -3, 8)
   > y <- c(1, 2, 3)
   > x + y

   [1]   3 -1 11

l) Combinaci´n lineal de dos vectores
            o

   > 5 * x - 2 * y

                                   6
[1]     8 -19   34

 m) Producto y cociente de vectores

       > x * y

       [1]   2 -6 24

       > x/y

       [1]   2.000000 -1.500000     2.666667

 n) Covarianza y coeficiente de correlaci´n
                                        o

       > cov(x, y)

       [1] 3

       > cor(x, y)

       [1] 0.5447048


3.     Funciones de uso general
3.1.     Exponenciales y logar´
                              ıtmicas
       Logaritmos neperianos de las componentes

       > log(y)

       [1] 0.0000000 0.6931472 1.0986123

       Logaritmos en diferentes bases (por ejemplo, base 10)

       > log(y, 10)

       [1] 0.0000000 0.3010300 0.4771213

       Potencias de base e

       > exp(y)

       [1]   2.718282   7.389056 20.085537

                                      7
Potencias en cualquier otra base (por ejemplo, 2)
       > 2^y

       [1] 2 4 8

3.2.     Ra´
           ıces cuadradas
> sqrt(y)
[1] 1.000000 1.414214 1.732051

3.3.     Funciones trigonom´tricas
                           e
   R considera que el argumento viene dado en radianes
> sin(y)
[1] 0.8414710 0.9092974 0.1411200
> cos(y)
[1]    0.5403023 -0.4161468 -0.9899925
> tan(y)
[1]    1.5574077 -2.1850399 -0.1425465
> z <- c(0.5, 0.7, 0.2)
> z
[1] 0.5 0.7 0.2
> asin(z)
[1] 0.5235988 0.7753975 0.2013579
> acos(z)
[1] 1.0471976 0.7953988 1.3694384
> atan(z)
[1] 0.4636476 0.6107260 0.1973956
   Todas estas funciones se pueden aplicar directamente sobre valores nu-
m´ricos.
 e
> log(3)
[1] 1.098612

                                      8
3.4.     Otras funciones
       choose(m,n) da el n´mero de combinaciones de m elementos de orden
                          u
       n

       > choose(10, 2)

       [1] 45

       factorial(n) da el factorial de un n´mero (n), o lo que es lo mismo,
                                            u
       calcula las permutaciones de n elementos

       > factorial(6)

       [1] 720

       runif(n) genera al azar n valores comprendidos entre 0 y 1

       > runif(5)

       [1] 0.2358614 0.5683257 0.9992840 0.2920381 0.2061905


4.     Funciones generadas por el usuario
   Vamos a crear una funci´n que a cada componente de un vector le reste
                           o
la media de todas las componentes del vector:
   desvia<-function(x)x-mean(x)

> desvia <- function(x) {
+     x - mean(x)
+ }

    function es la instrucci´n para crear una funci´n. La x que le sigue es
                            o                       o
el argumento de la funci´n y entre llaves est´ lo que la funci´n hace con el
                         o                   a                o
argumento. En este ejemplo a cada componente del vector le resta la media
de todas las componentes. Para ejecutar la funci´n basta con introducir el
                                                  o
nombre de la misma seguido del argumento entre par´ntesis
                                                      e

> desvia(x)

[1] -0.3333333 -5.3333333       5.6666667

     Recordemos que

                                     9
> x

[1]    2 -3   8

> mean(x)

[1] 2.333333

    ¿C´mo calcular´ la media creando tu propia funci´n? ¿C´mo calcular´
       o           ıas                                 o      o            ıas
la varianza creando tu propia funci´n? Despu´s de intentar dar una respuesta,
                                   o        e
mira las soluciones al final de este documento, si lo consideras necesario.


5.      Introducci´n de datos
                  o
   Cuando necesitamos introducir pocos datos, podemos hacerlo como hasta
ahora

> a <- c(2, 6, 8, 3, 5, 0, 9, 7, 6, 1)

     Para cantidades no muy grandes de datos podemos utilizar scan()

> b<-scan()
1: 1.25
2: 2.56
3: 3.5
4: 2.11
5: 6.32
6: 5.22
7: 6.41
8:
Read 7 items

    Al introducir la instrucci´n nos aparece 1 y el programa queda a la espera
                              o
de que introduzcamos un valor, lo hacemos y damos a Enter y aparece 2 para
que introduzcamos el siguiente valor. As´ continuaremos hasta el final. Para
                                          ı
indicar que terminamos y que ya no hay m´s datos debemos hacer Enter
                                               a
sin introducir ning´n valor. Si queremos editar una variable ya introducida
                    u
podemos usar la funci´n data.entry(b), que abre una ventana como la
                         o
siguiente:




                                     10
Podemos agregar un nuevo valor en la fila 8 y cerrar la ventana. De esta
forma el nuevo valor quedar´ incorporado al vector b:
                           a

> b

[1] 1.25 2.56 3.50 2.11 6.32 5.22 6.41

    Podemos observar que ya hay 8 valores. El ultimo que acabamos de
                                                ´
introducir es 3.21. Para introducir datos en una variable nueva con da-
ta.entry(x), creamos un vector vac´ Por ejemplo:
                                    ıo.

> w <- numeric()

   Podemos ver el resultado:

> w

numeric(0)

   A continuaci´n, tecleamos:
               o

> data.entry(w)

    Se nos desplegar´ una ventana como la anterior, en la que la primera
                    a
columna estar´ encabezada por el nombre del vector vac´ que hemos creado.
             a                                        ıo
En dicha columna podremos introducir los valores que queramos.


                                   11
Para introducir un n´mero grande de datos podemos utilizar EXCEL,
                          u
copiar los datos, volver a R , teclear x<-scan(), y en la entrada 1 pegar los
datos. Pulsamos Enter y quedan introducidos.

> x<-scan()
1: 2.4
2: 5.6
3: 3.5
4: 1.8
5: 4.5
6: 6.1
7:
Read 6 items

   Hay que tener cuidado con la configuraci´n del separador decimal de EX-
                                            o
CEL, que debe estar puesto en “.”, y no en “,”, pues de lo contrario, R nos
dar´ error. Si el separador est´ puesto en “,” puede cambiarse desde He-
   a                           a
rramientas/Opciones/Internacional, donde pondremos el separador
decimal con punto y los millares con coma.
   En pr´cticas posteriores importaremos datos desde EXCEL, SPSS, archi-
         a
vos de texto,etc. Tambi´n se puede utilizar el Bloc de notas de Windows
                        e


6.    Dos generadores de datos especiales
   Si queremos generar un vector con los 100 primeros n´meros naturales,
                                                       u
basta con introducir esta orden:

                                     12
> x <- 1:100

      Al teclear x obtendremos:
> x

  [1]     1    2    3        4        5    6    7    8         9 10    11   12   13   14   15   16   17   18
 [19]    19   20   21       22       23   24   25   26        27 28    29   30   31   32   33   34   35   36
 [37]    37   38   39       40       41   42   43   44        45 46    47   48   49   50   51   52   53   54
 [55]    55   56   57       58       59   60   61   62        63 64    65   66   67   68   69   70   71   72
 [73]    73   74   75       76       77   78   79   80        81 82    83   84   85   86   87   88   89   90
 [91]    91   92   93       94       95   96   97   98        99 100

    Hay que fijarse en que cada fila est´ encabezada por el n´mero que in-
                                        a                      u
dica la posici´n del primer elemento de la fila. Hasta ahora hemos hecho
              o
la asignaci´n de valores a la variable y la visualizaci´n de los mismos con
           o                                           o
dos instrucciones diferentes. Esto mismo se puede conseguir con una sola
instrucci´n poni´ndola entre par´ntesis:
         o      e               e

> x <- -3:5
> x

[1] -3 -2 -1            0        1    2   3    4    5

    Tambi´n se pueden generar valores sin asignarlos a ninguna variable, con
            e
lo cual aparecen en pantalla pero no se pueden volver a llamar y, por lo tanto,
a utilizar.
    Nota: El operador : tiene prelaci´n sobre +, -, *, /. Por ejemplo:
                                      o
> 4 * 1:25

 [1]     4     8   12       16       20 24     28   32    36    40     44   48   52   56   60   64   68   72   76
[20]    80    84   88       92       96 100

genera los n´meros del 1 al 25 y los multiplica despu´s por 4.
            u                                        e
   Sin embargo
> (4 * 1):25

 [1]     4    5    6    7        8     9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

multiplica el 1 por 4 y despu´s genera n´meros desde el 4 al 25
                             e            u
    Otro generador de vectores es la funci´n seq(a,b,r). Con esta instrucci´n
                                          o                                o
se genera una lista de n´meros que empieza en a y termina en b, yendo de r
                        u
en r. Por ejemplo:

> seq(4, 10, 2)

                                                         13
genera una lista de n´meros que empieza en 4 y termina en 10, yendo de dos
                     u
en dos:

> seq(4, 10, 2)

[1]    4    6   8 10

   Otra cosa es seq(a,b,lenght=r). Con esta instrucci´n se generan r n´-
                                                     o                u
meros entre a y b a distancias iguales. Por ejemplo:

> seq(4, 10, length = 8)

[1] 4.000000       4.857143   5.714286    6.571429    7.428571    8.285714      9.142857
[8] 10.000000


7.      Gr´ficos en R
          a
7.1.       Diagrama de barras
     Sea

> x <- c(1, 1, 1, 2, 2, 2, 2, 3, 4, 4, 4)

     La funci´n table tabula los datos en x table(x) produce:
             o

> table(x)

x
1 2 3 4
3 4 1 3

    Este resultado nos indica que el 1 aparece tres veces, el 2 cuatro veces,
el 3 una vez y el 4 tres veces. La instrucci´n barplot(table(x)) muestra el
                                            o
diagrama de barras:

> barplot(table(x))




                                     14
4
    3
    2
    1
    0




              1           2           3           4




    El diagrama se puede completar con t´
                                        ıtulos, subt´
                                                    ıtulos y etiquetas en los
ejes.

> barplot(table(x), main = "T´tulo principal", sub = "Subt´tulo",
                             ı                            ı
+     xlab = "Texto en x", ylab = "Texto en y")

    Si tenemos los datos en un vector x y las frecuencias correspondientes en
otro vector y, podemos tambi´n obtener el diagrama de barras procediendo
                              e
de la siguiente forma:

> x <- c(1, 2, 3, 4)
> y <- c(3, 4, 1, 3)
> barplot(y, names.arg = x)




                                     15
4
      3
      2
      1
      0




                1          2           3          4




7.2.      Histograma
   Consideremos una variable con 100 valores generados de la siguiente for-
ma:

> set.seed(111)
> x <- rnorm(100)

rnorm(100) genera 100 cien valores y set.seed(111) hace que en todos los
ordenadores los n´meros generados sean los mismos. Probemos:
                 u
> x

  [1]    0.23522071 -0.33073587 -0.31162382 -2.30234566 -0.17087604 0.14027823
  [7]   -1.49742666 -1.01018842 -0.94847560 -0.49396222 -0.17367413 -0.40659878
 [13]    1.84563626 0.39405411 0.79752850 -1.56666536 -0.08585101 -0.35913948
 [19]   -1.19360897 0.36418674 0.36166245 0.34696437 0.18973653 -0.15957681
 [25]    0.32654924 0.59825420 -1.84153430 2.71805560 0.19124439 -1.30129607
 [31]   -3.11321730 -0.94135740 1.40025878 -1.62047003 -2.26599596 1.16299359
 [37]   -0.11615504 0.33425601 -0.62085811 -1.30984491 -1.17572604 -1.12121553
 [43]   -1.36190448 0.48112458 0.74197163 0.02782463 0.33137971 0.64411413


                                      16
[49] 2.48566156 1.95998171 0.19166338 1.55254427 0.91424229 0.35862537
 [55] 0.17509564 -0.84726777 0.97823166 1.80586826 0.12291480 -0.12977203
 [61] -0.21642866 1.44647817 0.40970980 0.91091657 1.43035817 -0.38129196
 [67] 0.20230718 -0.80619919 0.29463418 1.40488308 1.02376685 0.47612606
 [73] -0.67033033 0.15923432 -0.38271538 0.93576259 -0.63153227 -0.09830608
 [79] 1.03198498 0.38780843 -1.25612931 -0.78695273 0.42981155 -0.37641622
 [85] -1.21622907 1.02927851 0.43039700 -1.24557402 -0.60272849 0.66006939
 [91] 2.05074953 0.49080818 -1.73147942 0.71088366 0.01382291 -1.40104160
 [97] 1.25912367 -0.12747752 -0.72938651 -1.21136136

    El histograma se puede obtener con la instrucci´n hist(). Para obtener
                                                   o
el n´mero de intervalos se usa la f´rmula de Sturges.
    u                              o

> hist(x)

    Si queremos usar amplitudes de intervalos dados por la f´rmula de Scott ,
                                                             o
siendo s la cuasidesviaci´n t´
                          o ıpica, o bien la de Freedman-Diaconis , siendo IQ
el rango intercuart´ılico, debemos utilizar el par´metro breaks. Por ejemplo:
                                                  a
   > hist(x, breaks = "Scott")                                       > hist(x, breaks = "FD")

                                   Histogram of x                                               Histogram of x
                                                                                 25
               30




                                                                                 20
   Frequency




                                                                     Frequency

                                                                                 15
               20




                                                                                 10
               10




                                                                                 5
               0




                                                                                 0




                    −4   −3   −2     −1       0     1   2   3                         −3   −2   −1        0      1   2   3

                                          x                                                           x




   Podemos elegir nuestros propios intervalos. Por ejemplo:

> hist(x, breaks = c(-4, -2, 0, 1.5, 3))




                                                                17
Histogram of x
           0.30
           0.25
           0.20
Density

           0.15
           0.10
           0.05
           0.00




                  −4   −3   −2     −1       0        1   2   3

                                        x


   Se pueden a˜adir t´
              n      ıtulos, subt´
                                 ıtulos, etc. de la misma forma que con
barplot():
> hist(x, breaks = c(-4, -2, 0, 1.5, 3), main = "T´tulo Principal",
                                                  ı
+     sub = "Subt´tulo", xlab = "Etiqueta x", ylab = "Etiqueta y")
                 ı

7.3.              Diagramas de cajas y bigotes
          Con boxplot() generamos diagramas de cajas y bigotes
> boxplot(x, main = "Principal", sub = "Subt´tulo", ylab = "Etiqueta y")
                                            ı
          Podemos ver dos valores at´
                                    ıpicos (outliers), uno por cada extremo.

7.4.              Diagrama de tallos y hojas
          Con las instrucciones siguientes, vamos a generar 40 valores entre 0.1 y
10.
> set.seed(111)
> y <- ceiling(100 * runif(40))/10

                                                18
> y

 [1] 6.0 7.3 3.8 5.2 3.8 4.2 0.2 5.4 4.4 1.0 5.6 6.0 0.7 0.5 1.6 4.5 1.8 9.7 3.2
[20] 6.2 4.4 2.9 3.5 3.9 9.7 3.3 6.6 2.9 7.9 6.0 0.6 5.1 4.7 4.7 3.6 7.2 1.2 7.9
[39] 6.5 8.1

    Con la instrucci´n ceiling(100*runif(40))/10 primero, con runif() se
                    o
generan 40 valores aleatorios entre 0 y 1. Al multiplicar por 100, los n´meros
                                                                        u
se encontrar´n entre 0 y 100 y con ceiling, obtendremos el entero mayor m´s
             a                                                              a
pr´ximo. Por ultimo, al dividir por 10, los n´meros quedan entre 0 y 10. El
  o            ´                              u
diagrama de tallos y hojas lo generamos con la instrucci´n stem():
                                                           o

> stem(y)

  The decimal point is at the |

  0   |   2567
  1   |   0268
  2   |   99
  3   |   2356889
  4   |   244577
  5   |   1246
  6   |   000256
  7   |   2399
  8   |   1
  9   |   77

7.5.      Diagrama de puntos
    Utilizaremos stripchart(y,method="stack",pch=1). pch nos indica el
tipo de marca que aparecer´ en el diagrama (c´
                             a                   ırculo, tri´ngulo, cuadrado,
                                                            a
etc.). Si no especificamos nada, el cuadrado es el tipo de marca por defecto.
El m´todo "stack" concatena m´ltiples vectores en uno solo, con un factor
      e                           u
que indica d´nde est´ el inicio de cada observaci´n.
              o       a                          o

> stripchart(y, method = "stack", pch = 2)




                                     19
0        2        4        6        8        10




7.6.     Diagrama de sectores
   Es preciso disponer de dos vectores. Uno con los valores y el otro con los
nombres. Por ejemplo:

> z <- c(15, 25, 36, 40)
> z.nombres <- c("ni~os", "j´venes", "maduros", "ancianos")
                    n       o

     Con la instrucci´n pie() generamos el diagrama de sectores.
                     o

> pie(z, labels = z.nombres)


8.      Soluciones
       Ordenaci´n en orden decreciente
               o

       > rev(sort(x))




                                     20
[1]    2.71805560    2.48566156    2.05074953    1.95998171    1.84563626    1.80586826
  [7]    1.55254427    1.44647817    1.43035817    1.40488308    1.40025878    1.25912367
 [13]    1.16299359    1.03198498    1.02927851    1.02376685    0.97823166    0.93576259
 [19]    0.91424229    0.91091657    0.79752850    0.74197163    0.71088366    0.66006939
 [25]    0.64411413    0.59825420    0.49080818    0.48112458    0.47612606    0.43039700
 [31]    0.42981155    0.40970980    0.39405411    0.38780843    0.36418674    0.36166245
 [37]    0.35862537    0.34696437    0.33425601    0.33137971    0.32654924    0.29463418
 [43]    0.23522071    0.20230718    0.19166338    0.19124439    0.18973653    0.17509564
 [49]    0.15923432    0.14027823    0.12291480    0.02782463    0.01382291   -0.08585101
 [55]   -0.09830608   -0.11615504   -0.12747752   -0.12977203   -0.15957681   -0.17087604
 [61]   -0.17367413   -0.21642866   -0.31162382   -0.33073587   -0.35913948   -0.37641622
 [67]   -0.38129196   -0.38271538   -0.40659878   -0.49396222   -0.60272849   -0.62085811
 [73]   -0.63153227   -0.67033033   -0.72938651   -0.78695273   -0.80619919   -0.84726777
 [79]   -0.94135740   -0.94847560   -1.01018842   -1.12121553   -1.17572604   -1.19360897
 [85]   -1.21136136   -1.21622907   -1.24557402   -1.25612931   -1.30129607   -1.30984491
 [91]   -1.36190448   -1.40104160   -1.49742666   -1.56666536   -1.62047003   -1.73147942
 [97]   -1.84153430   -2.26599596   -2.30234566   -3.11321730

Funci´n para calcular la media
     o

> media <- function(x) {
+     sum(x)/length(x)
+ }

Funci´n para calcular la varianza
     o
                                    ^
varianza<-function(x)sum((x-mean(x))2)/length(x)




                                    21

Mais conteúdo relacionado

Mais procurados

Integral indefinida
Integral indefinidaIntegral indefinida
Integral indefinidaruyepesro
 
Cursos de MATLAB
Cursos de MATLABCursos de MATLAB
Cursos de MATLABdwquezada
 
Matlab presentacion enero2012
Matlab presentacion enero2012Matlab presentacion enero2012
Matlab presentacion enero2012gerardoarbito
 
16. presentación ecuaciones diferenciales (1)
16. presentación   ecuaciones diferenciales (1)16. presentación   ecuaciones diferenciales (1)
16. presentación ecuaciones diferenciales (1)abraham mercader de jesus
 
16. presentación ecuaciones diferenciales
16. presentación   ecuaciones diferenciales16. presentación   ecuaciones diferenciales
16. presentación ecuaciones diferencialesJuan Huertas Villegas
 
Ejercicios detallados del obj 4 mat ii (178 179
Ejercicios detallados del obj 4 mat ii (178 179Ejercicios detallados del obj 4 mat ii (178 179
Ejercicios detallados del obj 4 mat ii (178 179Jonathan Mejías
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matricesJohanna Marin
 
Tarea
TareaTarea
TareaM.E.P
 
Unidad%2 bxii estructuras
Unidad%2 bxii estructurasUnidad%2 bxii estructuras
Unidad%2 bxii estructurasjeoselyn
 
Vectores, array y sus métodos
Vectores, array y sus métodosVectores, array y sus métodos
Vectores, array y sus métodosOrlando Verdugo
 
Trabajo de computacion
Trabajo de computacionTrabajo de computacion
Trabajo de computacionluis_xD
 
Resolución de ecuaciones diferenciales con MATLAB R2015a
Resolución de ecuaciones diferenciales  con  MATLAB  R2015aResolución de ecuaciones diferenciales  con  MATLAB  R2015a
Resolución de ecuaciones diferenciales con MATLAB R2015aJoanny Ibarbia Pardo
 
Problemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bProblemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bFRESH221 C.R
 

Mais procurados (20)

Integral indefinida
Integral indefinidaIntegral indefinida
Integral indefinida
 
Cursos de MATLAB
Cursos de MATLABCursos de MATLAB
Cursos de MATLAB
 
Matlab presentacion enero2012
Matlab presentacion enero2012Matlab presentacion enero2012
Matlab presentacion enero2012
 
resumen matlab
resumen matlabresumen matlab
resumen matlab
 
16. presentación ecuaciones diferenciales (1)
16. presentación   ecuaciones diferenciales (1)16. presentación   ecuaciones diferenciales (1)
16. presentación ecuaciones diferenciales (1)
 
16. presentación ecuaciones diferenciales
16. presentación   ecuaciones diferenciales16. presentación   ecuaciones diferenciales
16. presentación ecuaciones diferenciales
 
Gráficos en MATLAB
Gráficos en MATLABGráficos en MATLAB
Gráficos en MATLAB
 
Interpolaion c++
Interpolaion c++Interpolaion c++
Interpolaion c++
 
Cap06
Cap06Cap06
Cap06
 
[Sesion03] introduccion python
[Sesion03] introduccion python[Sesion03] introduccion python
[Sesion03] introduccion python
 
Ejercicios detallados del obj 4 mat ii (178 179
Ejercicios detallados del obj 4 mat ii (178 179Ejercicios detallados del obj 4 mat ii (178 179
Ejercicios detallados del obj 4 mat ii (178 179
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
 
Computacion v studio 2010 - 02
Computacion   v studio 2010 - 02Computacion   v studio 2010 - 02
Computacion v studio 2010 - 02
 
Guia sustitucion
Guia sustitucionGuia sustitucion
Guia sustitucion
 
Tarea
TareaTarea
Tarea
 
Unidad%2 bxii estructuras
Unidad%2 bxii estructurasUnidad%2 bxii estructuras
Unidad%2 bxii estructuras
 
Vectores, array y sus métodos
Vectores, array y sus métodosVectores, array y sus métodos
Vectores, array y sus métodos
 
Trabajo de computacion
Trabajo de computacionTrabajo de computacion
Trabajo de computacion
 
Resolución de ecuaciones diferenciales con MATLAB R2015a
Resolución de ecuaciones diferenciales  con  MATLAB  R2015aResolución de ecuaciones diferenciales  con  MATLAB  R2015a
Resolución de ecuaciones diferenciales con MATLAB R2015a
 
Problemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2bProblemas+resueltos+de+c$2 b$2b
Problemas+resueltos+de+c$2 b$2b
 

Destaque (9)

InformáTica Final
InformáTica FinalInformáTica Final
InformáTica Final
 
Programa Primaria Tercer grado RIEB 2011
Programa Primaria Tercer grado RIEB 2011Programa Primaria Tercer grado RIEB 2011
Programa Primaria Tercer grado RIEB 2011
 
Top diagnostic
Top diagnosticTop diagnostic
Top diagnostic
 
Presentación comocimiento del medio
Presentación comocimiento del medioPresentación comocimiento del medio
Presentación comocimiento del medio
 
La mquina ms_importante
La mquina ms_importanteLa mquina ms_importante
La mquina ms_importante
 
Computador Como Tutor Interactivo
Computador Como Tutor InteractivoComputador Como Tutor Interactivo
Computador Como Tutor Interactivo
 
Tablaf
TablafTablaf
Tablaf
 
Riesgolaboral
RiesgolaboralRiesgolaboral
Riesgolaboral
 
Protocolo de Petición de Recursos
Protocolo de Petición de RecursosProtocolo de Petición de Recursos
Protocolo de Petición de Recursos
 

Semelhante a Practica 1 Introduccion Al R (20)

Estadística con Lenguaje R: Sesión 2
Estadística con Lenguaje R: Sesión 2Estadística con Lenguaje R: Sesión 2
Estadística con Lenguaje R: Sesión 2
 
Tutorial rapido de octave
Tutorial rapido de octaveTutorial rapido de octave
Tutorial rapido de octave
 
Matlab
MatlabMatlab
Matlab
 
6.1 vectores
6.1 vectores6.1 vectores
6.1 vectores
 
Electrónica: Tutorial de Matlab aplicado
Electrónica: Tutorial de Matlab aplicadoElectrónica: Tutorial de Matlab aplicado
Electrónica: Tutorial de Matlab aplicado
 
Comandos r
Comandos rComandos r
Comandos r
 
Tp1 2006
Tp1 2006Tp1 2006
Tp1 2006
 
R manual
R manualR manual
R manual
 
Tutorial matlab
Tutorial matlabTutorial matlab
Tutorial matlab
 
Tarea 4
Tarea 4Tarea 4
Tarea 4
 
Python
PythonPython
Python
 
2 vectores matrices
2 vectores matrices2 vectores matrices
2 vectores matrices
 
2 vectores matrices
2 vectores matrices2 vectores matrices
2 vectores matrices
 
Clase1. introducción a matlab
Clase1. introducción a matlabClase1. introducción a matlab
Clase1. introducción a matlab
 
clase de matlab
clase  de   matlabclase  de   matlab
clase de matlab
 
Areglos y registros
Areglos y registrosAreglos y registros
Areglos y registros
 
Matlab introducción
Matlab   introducciónMatlab   introducción
Matlab introducción
 
Matlab introducción
Matlab   introducciónMatlab   introducción
Matlab introducción
 
Matlab introducción
Matlab   introducciónMatlab   introducción
Matlab introducción
 
Silabo programación ii 2015-i
Silabo programación ii 2015-iSilabo programación ii 2015-i
Silabo programación ii 2015-i
 

Mais de Juan de Jesus Sandoval

Transição da Fecundidade Inglaterra e Gales
Transição da Fecundidade Inglaterra e GalesTransição da Fecundidade Inglaterra e Gales
Transição da Fecundidade Inglaterra e GalesJuan de Jesus Sandoval
 
Minicurso Analisis Estadistico Espacial Coneest 2012
Minicurso Analisis Estadistico Espacial Coneest 2012Minicurso Analisis Estadistico Espacial Coneest 2012
Minicurso Analisis Estadistico Espacial Coneest 2012Juan de Jesus Sandoval
 
Distribuciones Continuas De Probabilidad
Distribuciones Continuas De ProbabilidadDistribuciones Continuas De Probabilidad
Distribuciones Continuas De ProbabilidadJuan de Jesus Sandoval
 

Mais de Juan de Jesus Sandoval (20)

Normalidad
NormalidadNormalidad
Normalidad
 
Tabla binomial
Tabla binomialTabla binomial
Tabla binomial
 
Estadistica Descriptiva con Excel
Estadistica Descriptiva con ExcelEstadistica Descriptiva con Excel
Estadistica Descriptiva con Excel
 
Transição da Fecundidade Inglaterra e Gales
Transição da Fecundidade Inglaterra e GalesTransição da Fecundidade Inglaterra e Gales
Transição da Fecundidade Inglaterra e Gales
 
Minicurso Analisis Estadistico Espacial Coneest 2012
Minicurso Analisis Estadistico Espacial Coneest 2012Minicurso Analisis Estadistico Espacial Coneest 2012
Minicurso Analisis Estadistico Espacial Coneest 2012
 
Ponencia CONEEST 2012
Ponencia CONEEST 2012Ponencia CONEEST 2012
Ponencia CONEEST 2012
 
Haciendo las calificaciones version2
Haciendo las calificaciones version2Haciendo las calificaciones version2
Haciendo las calificaciones version2
 
Variables en estadistica
Variables en estadisticaVariables en estadistica
Variables en estadistica
 
Distribucion ji cuadrado
Distribucion ji cuadradoDistribucion ji cuadrado
Distribucion ji cuadrado
 
Distribucion t
Distribucion tDistribucion t
Distribucion t
 
Terremoto
TerremotoTerremoto
Terremoto
 
Distribuciones Continuas De Probabilidad
Distribuciones Continuas De ProbabilidadDistribuciones Continuas De Probabilidad
Distribuciones Continuas De Probabilidad
 
Tabla normal estandar
Tabla normal estandarTabla normal estandar
Tabla normal estandar
 
Tablas Gamma
Tablas GammaTablas Gamma
Tablas Gamma
 
Tablas Estadistica Poisson
Tablas Estadistica PoissonTablas Estadistica Poisson
Tablas Estadistica Poisson
 
Tablas Estadistica Normal Estandar
Tablas Estadistica Normal EstandarTablas Estadistica Normal Estandar
Tablas Estadistica Normal Estandar
 
Distribuciones continuas
Distribuciones continuasDistribuciones continuas
Distribuciones continuas
 
Paseo Por La India
Paseo Por La IndiaPaseo Por La India
Paseo Por La India
 
Qué es la Estadística
Qué es la EstadísticaQué es la Estadística
Qué es la Estadística
 
Formulas Utiles en Probabilidad
Formulas Utiles en ProbabilidadFormulas Utiles en Probabilidad
Formulas Utiles en Probabilidad
 

Último

INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 

Último (20)

INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 

Practica 1 Introduccion Al R

  • 1. Practica 1: Introduccion a R ´ ´ 1. Introducci´n o R es un lenguaje de alto nivel y un entorno para el an´lisis de datos y gr´- a a ficos. Puede descargarse libremente del sitio llamado CRAN (Comprehensive R Archive Network) en la siguiente direcci´n: http://cran.r-project.org o o bien, simplemente buscando CRAN en Google. Al llegar a la pantalla anterior seguid para descargar el programa la si- guiente ruta: windows/base/R-2.7.2-win32.exe. Una vez instalado el progra- ma en entorno Windows, lo que vemos es la interfaz RGui (GUI es Graphical User Interface en ingl´s), con el s´ e ımbolo > esperando la entrada de instruc- ciones, tal y como puede apreciarse en la figura siguiente: 1
  • 2. El men´ principal contiene entradas t´ u ıpicas de otras aplicaciones: Ar- chivo, Editar, Visualizar, Ventanas y Ayuda, m´s otras dos Misc a y Paquetes. El men´ de Ayuda ser´ importante en esta fase inicial. Pa- u a ra obtener esta ayuda podemos tambi´n optar por introducir instrucciones e directamente por teclado. Introduce por ejemplo: > help(vector) y aparecer´ una ventana de ayuda con informaci´n sobre el comando a o vector. Podemos acceder a la misma pantalla desde el men´ Ayuda/Funciones u R (texto), aparecer´ un cuadro en el que deberemos introducir la palabra a vector. Si no recordamos la graf´ de una expresi´n podemos utilizar la ex- ıa o presi´n apropos poniendo entre par´ntesis, y entre comillas, la funci´n que o e o buscamos. 2
  • 3. que nos da las expresiones que contienen el t´rmino integer. Lo mismo se e puede conseguir con Ayuda/Sobre y en el cuadro de di´logo que aparece a introducimos integer. R es un lenguaje orientado a objetos. Uno de los m´s simples es vector. a Si queremos crear un vector con las componentes (2, 3, 8) y llamarlo x, tecleamos > x <- c(2, 3, 8) F´ıjate en que has de introducir el nombre del vector, x, los s´ ımbolos <-, la letra c (de concatenate en ingl´s), y por ultimo las coordenadas del vector e ´ entre par´ntesis. Para ver el vector que hemos creado, simplemente, tecleamos e su nombre: > x [1] 2 3 8 Como ya se ha podido observar al crear el vector x, para hacer asignaci´- o nes a las variables se utiliza una combinaci´n de los s´ o ımbolos < y - (gui´n). o Y, en esta ultima versi´n, tambi´n podemos utilizar el signo =. El signo = ´ o e tambi´n se utilizar´ para asignar valores a par´metros en las funciones. En e a a la salida anterior [1] indica que el 2 que le sigue es el primer elemento del vector. Si el vector ocupara m´s de una l´ a ınea, cada una de las nuevas l´ ıneas empezar´ por [n], indicando n el lugar que ocupa dentro del vector la coor- ıa denada que le sigue. Las componentes del vector se referencian por medio de ´ ındices entre corchetes. 3
  • 4. > x <- c(2, 3, 8) > x [1] 2 3 8 > x[2] [1] 3 > x[3] [1] 8 Podemos asignar un nuevo valor a alguna de las componentes del vector como se muestra en el siguiente ejemplo: > x[2] <- -3 > x [1] 2 -3 8 Hemos reemplazado la segunda componente del vector x por el valor -3. Nota: Para corregir una instrucci´n ya introducida, podemos acceder a ella o pulsando la tecla de flecha hacia arriba, las veces que sea necesario. Para dejar una instrucci´n a medias podemos pulsar la tecla Escape. o 2. Operaciones con vectores y fucniones a) Multiplicaci´n de un vector por un n´mero o u > 2 * x [1] 4 -6 16 b) Potencias > x^3 [1] 8 -27 512 c) Longitud Devuelve la dimensi´n de un vector o > length(x) 4
  • 5. [1] 3 d) Suma y sumas acumuladas Devuelve la suma de las componentes del vector y la suma acumulada de las componentes > sum(x) [1] 7 > cumsum(x) [1] 2 -1 7 e) Valor m´ximo y m´ a ınimo Devuelven los valores m´ximo y m´ a ınimo de las componentes de un vector > max(x) [1] 8 > min(x) [1] -3 f) Media, mediana, cuasivarianza y cuasidesviaci´n t´ o ıpica de las compo- nentes Calculan la media, mediana, cuasivarianza, y cuasidesviaci´n o t´ ıpica de las componentes del vector > mean(x) [1] 2.333333 > median(x) [1] 2 > var(x) [1] 30.33333 > sd(x) [1] 5.50757 5
  • 6. g) Producto de las componentes y productos acumulados > prod(x) [1] -48 > cumprod(x) [1] 2 -6 -48 h) Cuartiles de x > quantile(x) 0% 25% 50% 75% 100% -3.0 -0.5 2.0 5.0 8.0 i) Ordenaci´n creciente de las componentes del vector o > sort(x) [1] -3 2 8 j) Colocar las componentes de un vector en orden inverso a como han sido introducidas > rev(x) [1] 8 -3 2 ¿C´mo ordenar´ en orden decreciente? o ıas k) Suma de vectores > x <- c(2, -3, 8) > y <- c(1, 2, 3) > x + y [1] 3 -1 11 l) Combinaci´n lineal de dos vectores o > 5 * x - 2 * y 6
  • 7. [1] 8 -19 34 m) Producto y cociente de vectores > x * y [1] 2 -6 24 > x/y [1] 2.000000 -1.500000 2.666667 n) Covarianza y coeficiente de correlaci´n o > cov(x, y) [1] 3 > cor(x, y) [1] 0.5447048 3. Funciones de uso general 3.1. Exponenciales y logar´ ıtmicas Logaritmos neperianos de las componentes > log(y) [1] 0.0000000 0.6931472 1.0986123 Logaritmos en diferentes bases (por ejemplo, base 10) > log(y, 10) [1] 0.0000000 0.3010300 0.4771213 Potencias de base e > exp(y) [1] 2.718282 7.389056 20.085537 7
  • 8. Potencias en cualquier otra base (por ejemplo, 2) > 2^y [1] 2 4 8 3.2. Ra´ ıces cuadradas > sqrt(y) [1] 1.000000 1.414214 1.732051 3.3. Funciones trigonom´tricas e R considera que el argumento viene dado en radianes > sin(y) [1] 0.8414710 0.9092974 0.1411200 > cos(y) [1] 0.5403023 -0.4161468 -0.9899925 > tan(y) [1] 1.5574077 -2.1850399 -0.1425465 > z <- c(0.5, 0.7, 0.2) > z [1] 0.5 0.7 0.2 > asin(z) [1] 0.5235988 0.7753975 0.2013579 > acos(z) [1] 1.0471976 0.7953988 1.3694384 > atan(z) [1] 0.4636476 0.6107260 0.1973956 Todas estas funciones se pueden aplicar directamente sobre valores nu- m´ricos. e > log(3) [1] 1.098612 8
  • 9. 3.4. Otras funciones choose(m,n) da el n´mero de combinaciones de m elementos de orden u n > choose(10, 2) [1] 45 factorial(n) da el factorial de un n´mero (n), o lo que es lo mismo, u calcula las permutaciones de n elementos > factorial(6) [1] 720 runif(n) genera al azar n valores comprendidos entre 0 y 1 > runif(5) [1] 0.2358614 0.5683257 0.9992840 0.2920381 0.2061905 4. Funciones generadas por el usuario Vamos a crear una funci´n que a cada componente de un vector le reste o la media de todas las componentes del vector: desvia<-function(x)x-mean(x) > desvia <- function(x) { + x - mean(x) + } function es la instrucci´n para crear una funci´n. La x que le sigue es o o el argumento de la funci´n y entre llaves est´ lo que la funci´n hace con el o a o argumento. En este ejemplo a cada componente del vector le resta la media de todas las componentes. Para ejecutar la funci´n basta con introducir el o nombre de la misma seguido del argumento entre par´ntesis e > desvia(x) [1] -0.3333333 -5.3333333 5.6666667 Recordemos que 9
  • 10. > x [1] 2 -3 8 > mean(x) [1] 2.333333 ¿C´mo calcular´ la media creando tu propia funci´n? ¿C´mo calcular´ o ıas o o ıas la varianza creando tu propia funci´n? Despu´s de intentar dar una respuesta, o e mira las soluciones al final de este documento, si lo consideras necesario. 5. Introducci´n de datos o Cuando necesitamos introducir pocos datos, podemos hacerlo como hasta ahora > a <- c(2, 6, 8, 3, 5, 0, 9, 7, 6, 1) Para cantidades no muy grandes de datos podemos utilizar scan() > b<-scan() 1: 1.25 2: 2.56 3: 3.5 4: 2.11 5: 6.32 6: 5.22 7: 6.41 8: Read 7 items Al introducir la instrucci´n nos aparece 1 y el programa queda a la espera o de que introduzcamos un valor, lo hacemos y damos a Enter y aparece 2 para que introduzcamos el siguiente valor. As´ continuaremos hasta el final. Para ı indicar que terminamos y que ya no hay m´s datos debemos hacer Enter a sin introducir ning´n valor. Si queremos editar una variable ya introducida u podemos usar la funci´n data.entry(b), que abre una ventana como la o siguiente: 10
  • 11. Podemos agregar un nuevo valor en la fila 8 y cerrar la ventana. De esta forma el nuevo valor quedar´ incorporado al vector b: a > b [1] 1.25 2.56 3.50 2.11 6.32 5.22 6.41 Podemos observar que ya hay 8 valores. El ultimo que acabamos de ´ introducir es 3.21. Para introducir datos en una variable nueva con da- ta.entry(x), creamos un vector vac´ Por ejemplo: ıo. > w <- numeric() Podemos ver el resultado: > w numeric(0) A continuaci´n, tecleamos: o > data.entry(w) Se nos desplegar´ una ventana como la anterior, en la que la primera a columna estar´ encabezada por el nombre del vector vac´ que hemos creado. a ıo En dicha columna podremos introducir los valores que queramos. 11
  • 12. Para introducir un n´mero grande de datos podemos utilizar EXCEL, u copiar los datos, volver a R , teclear x<-scan(), y en la entrada 1 pegar los datos. Pulsamos Enter y quedan introducidos. > x<-scan() 1: 2.4 2: 5.6 3: 3.5 4: 1.8 5: 4.5 6: 6.1 7: Read 6 items Hay que tener cuidado con la configuraci´n del separador decimal de EX- o CEL, que debe estar puesto en “.”, y no en “,”, pues de lo contrario, R nos dar´ error. Si el separador est´ puesto en “,” puede cambiarse desde He- a a rramientas/Opciones/Internacional, donde pondremos el separador decimal con punto y los millares con coma. En pr´cticas posteriores importaremos datos desde EXCEL, SPSS, archi- a vos de texto,etc. Tambi´n se puede utilizar el Bloc de notas de Windows e 6. Dos generadores de datos especiales Si queremos generar un vector con los 100 primeros n´meros naturales, u basta con introducir esta orden: 12
  • 13. > x <- 1:100 Al teclear x obtendremos: > x [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [19] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 [37] 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 [55] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 [73] 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 [91] 91 92 93 94 95 96 97 98 99 100 Hay que fijarse en que cada fila est´ encabezada por el n´mero que in- a u dica la posici´n del primer elemento de la fila. Hasta ahora hemos hecho o la asignaci´n de valores a la variable y la visualizaci´n de los mismos con o o dos instrucciones diferentes. Esto mismo se puede conseguir con una sola instrucci´n poni´ndola entre par´ntesis: o e e > x <- -3:5 > x [1] -3 -2 -1 0 1 2 3 4 5 Tambi´n se pueden generar valores sin asignarlos a ninguna variable, con e lo cual aparecen en pantalla pero no se pueden volver a llamar y, por lo tanto, a utilizar. Nota: El operador : tiene prelaci´n sobre +, -, *, /. Por ejemplo: o > 4 * 1:25 [1] 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 [20] 80 84 88 92 96 100 genera los n´meros del 1 al 25 y los multiplica despu´s por 4. u e Sin embargo > (4 * 1):25 [1] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 multiplica el 1 por 4 y despu´s genera n´meros desde el 4 al 25 e u Otro generador de vectores es la funci´n seq(a,b,r). Con esta instrucci´n o o se genera una lista de n´meros que empieza en a y termina en b, yendo de r u en r. Por ejemplo: > seq(4, 10, 2) 13
  • 14. genera una lista de n´meros que empieza en 4 y termina en 10, yendo de dos u en dos: > seq(4, 10, 2) [1] 4 6 8 10 Otra cosa es seq(a,b,lenght=r). Con esta instrucci´n se generan r n´- o u meros entre a y b a distancias iguales. Por ejemplo: > seq(4, 10, length = 8) [1] 4.000000 4.857143 5.714286 6.571429 7.428571 8.285714 9.142857 [8] 10.000000 7. Gr´ficos en R a 7.1. Diagrama de barras Sea > x <- c(1, 1, 1, 2, 2, 2, 2, 3, 4, 4, 4) La funci´n table tabula los datos en x table(x) produce: o > table(x) x 1 2 3 4 3 4 1 3 Este resultado nos indica que el 1 aparece tres veces, el 2 cuatro veces, el 3 una vez y el 4 tres veces. La instrucci´n barplot(table(x)) muestra el o diagrama de barras: > barplot(table(x)) 14
  • 15. 4 3 2 1 0 1 2 3 4 El diagrama se puede completar con t´ ıtulos, subt´ ıtulos y etiquetas en los ejes. > barplot(table(x), main = "T´tulo principal", sub = "Subt´tulo", ı ı + xlab = "Texto en x", ylab = "Texto en y") Si tenemos los datos en un vector x y las frecuencias correspondientes en otro vector y, podemos tambi´n obtener el diagrama de barras procediendo e de la siguiente forma: > x <- c(1, 2, 3, 4) > y <- c(3, 4, 1, 3) > barplot(y, names.arg = x) 15
  • 16. 4 3 2 1 0 1 2 3 4 7.2. Histograma Consideremos una variable con 100 valores generados de la siguiente for- ma: > set.seed(111) > x <- rnorm(100) rnorm(100) genera 100 cien valores y set.seed(111) hace que en todos los ordenadores los n´meros generados sean los mismos. Probemos: u > x [1] 0.23522071 -0.33073587 -0.31162382 -2.30234566 -0.17087604 0.14027823 [7] -1.49742666 -1.01018842 -0.94847560 -0.49396222 -0.17367413 -0.40659878 [13] 1.84563626 0.39405411 0.79752850 -1.56666536 -0.08585101 -0.35913948 [19] -1.19360897 0.36418674 0.36166245 0.34696437 0.18973653 -0.15957681 [25] 0.32654924 0.59825420 -1.84153430 2.71805560 0.19124439 -1.30129607 [31] -3.11321730 -0.94135740 1.40025878 -1.62047003 -2.26599596 1.16299359 [37] -0.11615504 0.33425601 -0.62085811 -1.30984491 -1.17572604 -1.12121553 [43] -1.36190448 0.48112458 0.74197163 0.02782463 0.33137971 0.64411413 16
  • 17. [49] 2.48566156 1.95998171 0.19166338 1.55254427 0.91424229 0.35862537 [55] 0.17509564 -0.84726777 0.97823166 1.80586826 0.12291480 -0.12977203 [61] -0.21642866 1.44647817 0.40970980 0.91091657 1.43035817 -0.38129196 [67] 0.20230718 -0.80619919 0.29463418 1.40488308 1.02376685 0.47612606 [73] -0.67033033 0.15923432 -0.38271538 0.93576259 -0.63153227 -0.09830608 [79] 1.03198498 0.38780843 -1.25612931 -0.78695273 0.42981155 -0.37641622 [85] -1.21622907 1.02927851 0.43039700 -1.24557402 -0.60272849 0.66006939 [91] 2.05074953 0.49080818 -1.73147942 0.71088366 0.01382291 -1.40104160 [97] 1.25912367 -0.12747752 -0.72938651 -1.21136136 El histograma se puede obtener con la instrucci´n hist(). Para obtener o el n´mero de intervalos se usa la f´rmula de Sturges. u o > hist(x) Si queremos usar amplitudes de intervalos dados por la f´rmula de Scott , o siendo s la cuasidesviaci´n t´ o ıpica, o bien la de Freedman-Diaconis , siendo IQ el rango intercuart´ılico, debemos utilizar el par´metro breaks. Por ejemplo: a > hist(x, breaks = "Scott") > hist(x, breaks = "FD") Histogram of x Histogram of x 25 30 20 Frequency Frequency 15 20 10 10 5 0 0 −4 −3 −2 −1 0 1 2 3 −3 −2 −1 0 1 2 3 x x Podemos elegir nuestros propios intervalos. Por ejemplo: > hist(x, breaks = c(-4, -2, 0, 1.5, 3)) 17
  • 18. Histogram of x 0.30 0.25 0.20 Density 0.15 0.10 0.05 0.00 −4 −3 −2 −1 0 1 2 3 x Se pueden a˜adir t´ n ıtulos, subt´ ıtulos, etc. de la misma forma que con barplot(): > hist(x, breaks = c(-4, -2, 0, 1.5, 3), main = "T´tulo Principal", ı + sub = "Subt´tulo", xlab = "Etiqueta x", ylab = "Etiqueta y") ı 7.3. Diagramas de cajas y bigotes Con boxplot() generamos diagramas de cajas y bigotes > boxplot(x, main = "Principal", sub = "Subt´tulo", ylab = "Etiqueta y") ı Podemos ver dos valores at´ ıpicos (outliers), uno por cada extremo. 7.4. Diagrama de tallos y hojas Con las instrucciones siguientes, vamos a generar 40 valores entre 0.1 y 10. > set.seed(111) > y <- ceiling(100 * runif(40))/10 18
  • 19. > y [1] 6.0 7.3 3.8 5.2 3.8 4.2 0.2 5.4 4.4 1.0 5.6 6.0 0.7 0.5 1.6 4.5 1.8 9.7 3.2 [20] 6.2 4.4 2.9 3.5 3.9 9.7 3.3 6.6 2.9 7.9 6.0 0.6 5.1 4.7 4.7 3.6 7.2 1.2 7.9 [39] 6.5 8.1 Con la instrucci´n ceiling(100*runif(40))/10 primero, con runif() se o generan 40 valores aleatorios entre 0 y 1. Al multiplicar por 100, los n´meros u se encontrar´n entre 0 y 100 y con ceiling, obtendremos el entero mayor m´s a a pr´ximo. Por ultimo, al dividir por 10, los n´meros quedan entre 0 y 10. El o ´ u diagrama de tallos y hojas lo generamos con la instrucci´n stem(): o > stem(y) The decimal point is at the | 0 | 2567 1 | 0268 2 | 99 3 | 2356889 4 | 244577 5 | 1246 6 | 000256 7 | 2399 8 | 1 9 | 77 7.5. Diagrama de puntos Utilizaremos stripchart(y,method="stack",pch=1). pch nos indica el tipo de marca que aparecer´ en el diagrama (c´ a ırculo, tri´ngulo, cuadrado, a etc.). Si no especificamos nada, el cuadrado es el tipo de marca por defecto. El m´todo "stack" concatena m´ltiples vectores en uno solo, con un factor e u que indica d´nde est´ el inicio de cada observaci´n. o a o > stripchart(y, method = "stack", pch = 2) 19
  • 20. 0 2 4 6 8 10 7.6. Diagrama de sectores Es preciso disponer de dos vectores. Uno con los valores y el otro con los nombres. Por ejemplo: > z <- c(15, 25, 36, 40) > z.nombres <- c("ni~os", "j´venes", "maduros", "ancianos") n o Con la instrucci´n pie() generamos el diagrama de sectores. o > pie(z, labels = z.nombres) 8. Soluciones Ordenaci´n en orden decreciente o > rev(sort(x)) 20
  • 21. [1] 2.71805560 2.48566156 2.05074953 1.95998171 1.84563626 1.80586826 [7] 1.55254427 1.44647817 1.43035817 1.40488308 1.40025878 1.25912367 [13] 1.16299359 1.03198498 1.02927851 1.02376685 0.97823166 0.93576259 [19] 0.91424229 0.91091657 0.79752850 0.74197163 0.71088366 0.66006939 [25] 0.64411413 0.59825420 0.49080818 0.48112458 0.47612606 0.43039700 [31] 0.42981155 0.40970980 0.39405411 0.38780843 0.36418674 0.36166245 [37] 0.35862537 0.34696437 0.33425601 0.33137971 0.32654924 0.29463418 [43] 0.23522071 0.20230718 0.19166338 0.19124439 0.18973653 0.17509564 [49] 0.15923432 0.14027823 0.12291480 0.02782463 0.01382291 -0.08585101 [55] -0.09830608 -0.11615504 -0.12747752 -0.12977203 -0.15957681 -0.17087604 [61] -0.17367413 -0.21642866 -0.31162382 -0.33073587 -0.35913948 -0.37641622 [67] -0.38129196 -0.38271538 -0.40659878 -0.49396222 -0.60272849 -0.62085811 [73] -0.63153227 -0.67033033 -0.72938651 -0.78695273 -0.80619919 -0.84726777 [79] -0.94135740 -0.94847560 -1.01018842 -1.12121553 -1.17572604 -1.19360897 [85] -1.21136136 -1.21622907 -1.24557402 -1.25612931 -1.30129607 -1.30984491 [91] -1.36190448 -1.40104160 -1.49742666 -1.56666536 -1.62047003 -1.73147942 [97] -1.84153430 -2.26599596 -2.30234566 -3.11321730 Funci´n para calcular la media o > media <- function(x) { + sum(x)/length(x) + } Funci´n para calcular la varianza o ^ varianza<-function(x)sum((x-mean(x))2)/length(x) 21