SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Destacado (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
 

Similar 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
 
Silabo programación ii 2015-i
Silabo programación ii 2015-iSilabo programación ii 2015-i
Silabo programación ii 2015-i
 
Matlab introducción
Matlab   introducciónMatlab   introducción
Matlab introducción
 

Más 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
 

Más 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

Tema 4 Rocas sedimentarias, características y clasificación
Tema 4 Rocas sedimentarias, características y clasificaciónTema 4 Rocas sedimentarias, características y clasificación
Tema 4 Rocas sedimentarias, características y clasificaciónIES Vicent Andres Estelles
 
Concurso de Innovación Pedagógica T2 FONDEP 2024 Ccesa007.pdf
Concurso de Innovación Pedagógica  T2  FONDEP 2024 Ccesa007.pdfConcurso de Innovación Pedagógica  T2  FONDEP 2024 Ccesa007.pdf
Concurso de Innovación Pedagógica T2 FONDEP 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
la forma de los objetos expresión gráfica preescolar
la forma de los objetos expresión gráfica preescolarla forma de los objetos expresión gráfica preescolar
la forma de los objetos expresión gráfica preescolarCa Ut
 
Presentación del tema: tecnología educativa
Presentación del tema: tecnología educativaPresentación del tema: tecnología educativa
Presentación del tema: tecnología educativaricardoruizaleman
 
Evaluacion Diagnostica Matematica 2do C2 Secundaria Ccesa007.pdf
Evaluacion Diagnostica Matematica 2do C2 Secundaria Ccesa007.pdfEvaluacion Diagnostica Matematica 2do C2 Secundaria Ccesa007.pdf
Evaluacion Diagnostica Matematica 2do C2 Secundaria Ccesa007.pdfDemetrio Ccesa Rayme
 
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdfGUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdfNELLYKATTY
 
Tecnología educativa en la era actual .pptx
Tecnología educativa en la era actual .pptxTecnología educativa en la era actual .pptx
Tecnología educativa en la era actual .pptxJulioSantin2
 
CARPETA PEDAGÓGICA 2024.docx para educacion
CARPETA PEDAGÓGICA 2024.docx para educacionCARPETA PEDAGÓGICA 2024.docx para educacion
CARPETA PEDAGÓGICA 2024.docx para educacionCarolVigo1
 
Xardín de San Carlos (A Coruña) IES Monelos
Xardín de San Carlos (A Coruña) IES MonelosXardín de San Carlos (A Coruña) IES Monelos
Xardín de San Carlos (A Coruña) IES MonelosAgrela Elvixeo
 
Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Ivie
 
CIENCIAS SOCIALES SEGUNDO TRIMESTRE CUARTO
CIENCIAS SOCIALES SEGUNDO TRIMESTRE CUARTOCIENCIAS SOCIALES SEGUNDO TRIMESTRE CUARTO
CIENCIAS SOCIALES SEGUNDO TRIMESTRE CUARTOCEIP TIERRA DE PINARES
 
Evaluacion Diagnostica Matematica 5to C2 Secundaria Ccesa007.pdf
Evaluacion Diagnostica Matematica 5to  C2 Secundaria Ccesa007.pdfEvaluacion Diagnostica Matematica 5to  C2 Secundaria Ccesa007.pdf
Evaluacion Diagnostica Matematica 5to C2 Secundaria Ccesa007.pdfDemetrio Ccesa Rayme
 
PSICOLOGÍA. UNA INTRODUCCIÓN. ALCIRA ORSINI Y LETICIA BOSSELLINI 3.pdf
PSICOLOGÍA. UNA INTRODUCCIÓN. ALCIRA ORSINI Y LETICIA BOSSELLINI 3.pdfPSICOLOGÍA. UNA INTRODUCCIÓN. ALCIRA ORSINI Y LETICIA BOSSELLINI 3.pdf
PSICOLOGÍA. UNA INTRODUCCIÓN. ALCIRA ORSINI Y LETICIA BOSSELLINI 3.pdfCarlosAntonio456574
 
La Congregación de Jesús y María, conocida también como los Eudistas, fue fun...
La Congregación de Jesús y María, conocida también como los Eudistas, fue fun...La Congregación de Jesús y María, conocida también como los Eudistas, fue fun...
La Congregación de Jesús y María, conocida también como los Eudistas, fue fun...Unidad de Espiritualidad Eudista
 
Tarea 2 - Sociologia de la organizacion-1.docx
Tarea 2 - Sociologia de la organizacion-1.docxTarea 2 - Sociologia de la organizacion-1.docx
Tarea 2 - Sociologia de la organizacion-1.docxmiguelramosvse
 
Escrito administrativo técnico y comerciales
Escrito administrativo técnico y comercialesEscrito administrativo técnico y comerciales
Escrito administrativo técnico y comercialesmelanieteresacontrer
 
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLA
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLAEL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLA
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Semana Santa en Popayán para el año 2024
Semana Santa en Popayán para el año 2024Semana Santa en Popayán para el año 2024
Semana Santa en Popayán para el año 2024yaco173
 
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLAEL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Los escritos administrativos, técnicos y comerciales
Los escritos administrativos, técnicos y comercialesLos escritos administrativos, técnicos y comerciales
Los escritos administrativos, técnicos y comercialeshanda210618
 

Último (20)

Tema 4 Rocas sedimentarias, características y clasificación
Tema 4 Rocas sedimentarias, características y clasificaciónTema 4 Rocas sedimentarias, características y clasificación
Tema 4 Rocas sedimentarias, características y clasificación
 
Concurso de Innovación Pedagógica T2 FONDEP 2024 Ccesa007.pdf
Concurso de Innovación Pedagógica  T2  FONDEP 2024 Ccesa007.pdfConcurso de Innovación Pedagógica  T2  FONDEP 2024 Ccesa007.pdf
Concurso de Innovación Pedagógica T2 FONDEP 2024 Ccesa007.pdf
 
la forma de los objetos expresión gráfica preescolar
la forma de los objetos expresión gráfica preescolarla forma de los objetos expresión gráfica preescolar
la forma de los objetos expresión gráfica preescolar
 
Presentación del tema: tecnología educativa
Presentación del tema: tecnología educativaPresentación del tema: tecnología educativa
Presentación del tema: tecnología educativa
 
Evaluacion Diagnostica Matematica 2do C2 Secundaria Ccesa007.pdf
Evaluacion Diagnostica Matematica 2do C2 Secundaria Ccesa007.pdfEvaluacion Diagnostica Matematica 2do C2 Secundaria Ccesa007.pdf
Evaluacion Diagnostica Matematica 2do C2 Secundaria Ccesa007.pdf
 
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdfGUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
 
Tecnología educativa en la era actual .pptx
Tecnología educativa en la era actual .pptxTecnología educativa en la era actual .pptx
Tecnología educativa en la era actual .pptx
 
CARPETA PEDAGÓGICA 2024.docx para educacion
CARPETA PEDAGÓGICA 2024.docx para educacionCARPETA PEDAGÓGICA 2024.docx para educacion
CARPETA PEDAGÓGICA 2024.docx para educacion
 
Xardín de San Carlos (A Coruña) IES Monelos
Xardín de San Carlos (A Coruña) IES MonelosXardín de San Carlos (A Coruña) IES Monelos
Xardín de San Carlos (A Coruña) IES Monelos
 
Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023
 
CIENCIAS SOCIALES SEGUNDO TRIMESTRE CUARTO
CIENCIAS SOCIALES SEGUNDO TRIMESTRE CUARTOCIENCIAS SOCIALES SEGUNDO TRIMESTRE CUARTO
CIENCIAS SOCIALES SEGUNDO TRIMESTRE CUARTO
 
Evaluacion Diagnostica Matematica 5to C2 Secundaria Ccesa007.pdf
Evaluacion Diagnostica Matematica 5to  C2 Secundaria Ccesa007.pdfEvaluacion Diagnostica Matematica 5to  C2 Secundaria Ccesa007.pdf
Evaluacion Diagnostica Matematica 5to C2 Secundaria Ccesa007.pdf
 
PSICOLOGÍA. UNA INTRODUCCIÓN. ALCIRA ORSINI Y LETICIA BOSSELLINI 3.pdf
PSICOLOGÍA. UNA INTRODUCCIÓN. ALCIRA ORSINI Y LETICIA BOSSELLINI 3.pdfPSICOLOGÍA. UNA INTRODUCCIÓN. ALCIRA ORSINI Y LETICIA BOSSELLINI 3.pdf
PSICOLOGÍA. UNA INTRODUCCIÓN. ALCIRA ORSINI Y LETICIA BOSSELLINI 3.pdf
 
La Congregación de Jesús y María, conocida también como los Eudistas, fue fun...
La Congregación de Jesús y María, conocida también como los Eudistas, fue fun...La Congregación de Jesús y María, conocida también como los Eudistas, fue fun...
La Congregación de Jesús y María, conocida también como los Eudistas, fue fun...
 
Tarea 2 - Sociologia de la organizacion-1.docx
Tarea 2 - Sociologia de la organizacion-1.docxTarea 2 - Sociologia de la organizacion-1.docx
Tarea 2 - Sociologia de la organizacion-1.docx
 
Escrito administrativo técnico y comerciales
Escrito administrativo técnico y comercialesEscrito administrativo técnico y comerciales
Escrito administrativo técnico y comerciales
 
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLA
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLAEL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLA
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLA
 
Semana Santa en Popayán para el año 2024
Semana Santa en Popayán para el año 2024Semana Santa en Popayán para el año 2024
Semana Santa en Popayán para el año 2024
 
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLAEL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
 
Los escritos administrativos, técnicos y comerciales
Los escritos administrativos, técnicos y comercialesLos escritos administrativos, técnicos y comerciales
Los escritos administrativos, técnicos y comerciales
 

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