Ejercicio 1

  1. Dado x = (3, -5, 31,-1,-9, 10, 0, 18) y dado y = (1, 1,-3, 1,-99,-10, 10,-7) realice lo siguiente:
    • introduzca x y y como vectores en R.
    x <- c(3,-5, 31,-1, -9, 10, 0, 18)
    y <- c(1, 1, -3, 1, -99, -10, 10,-7)
    x 
    ## [1]  3 -5 31 -1 -9 10  0 18
    y
    ## [1]   1   1  -3   1 -99 -10  10  -7
    • Calcule la media, la varianza, la raíz cuadrada y la desviación estándar de y.
    mean(y)
    ## [1] -13.25
    var(y)
    ## [1] 1236.786
    sqrt(y)
    ## Warning in sqrt(y): Se han producido NaNs
    ## [1] 1.000000 1.000000      NaN 1.000000      NaN      NaN 3.162278      NaN
    sqrt(sum(y))
    ## Warning in sqrt(sum(y)): Se han producido NaNs
    ## [1] NaN
    sd(y)
    ## [1] 35.16796
    • Calcule la media, la varianza, la raíz cuadrada y la desviación estándar de x.
    mean(x)
    ## [1] 5.875
    var(x)
    ## [1] 174.9821
    sqrt(x)
    ## Warning in sqrt(x): Se han producido NaNs
    ## [1] 1.732051      NaN 5.567764      NaN      NaN 3.162278 0.000000 4.242641
    sqrt(sum(x))
    ## [1] 6.855655
    sd(x)
    ## [1] 13.22808
    • Escriba un comando en R para extraer las entradas 2 a la 7 de x.
    x[2:7]
    ## [1] -5 31 -1 -9 10  0
    • Escriba un comando en R para extraer las entradas de y excepto la 2 y la 7.
    y[-c(2,7)]
    ## [1]   1  -3   1 -99 -10  -7
    • Escriba un comando en R para extraer las entradas de y menores a -3 o mayores a 10.
    es.mayor.menor<-(y<(-3)) | (y>10)
    es.mayor.menor
    ## [1] FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE
    pruebay<-y[es.mayor.menor]
    pruebay
    ## [1] -99 -10  -7
    • Escriba un comando en R para extraer las entradas de x mayores a 0 y que sean números pares.
    es.mayores.pares<-(x>0)&((x%%2)==0)
    es.mayores.pares
    ## [1] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE
    mayores.pares<-x[es.mayores.pares]
    mayores.pares
    ## [1] 10 18

Ejercicio 2

  1. Introduzca en R la siguiente matriz a 4 x 3 usando:
    • A = matrix(c(1,2,3,4,5,6,7,8,9,10,11,12),nrow=4,“byrow”=“true”)
    A<-matrix(c(1,2,3,4,5,6,7,8,9,10,11,12),nrow=4,"byrow"="true")

    Luego, accece a los algunos elementos de la matriz de la siguiente manera: A[1,1:3], A[1:4,2], A[3,3], A[11], A[20], A[5,4], A[1,1,1] y explique qué pasa en cada caso.

    A[1,1:3]
    ## [1] 1 2 3

    imprime la fila 1 de la entrada 1 hasta la 3

    A[1:4,2]
    ## [1]  2  5  8 11

    imprime de la entrada 1 hasta la 4 pero de la columna

    A[3,3]
    ## [1] 9

    imprime la posicion de la fila 3 y la columna 3

    A[11]
    ## [1] 9

    imprime la 11 posicion contando de izquiera a derecha,m de arriba a bajo

    A[20]
    ## [1] NA

    imprime NA porque la posicion 20 no existe, llega hasta la 12

    A[5,4]

    imprime subscript out of bounds porque la matriz es de 4X3

    A[1,1,1]

    imprime incorrect number of dimensions, porque la matriz es de 2 entradas

Ejercicio 3

  1. Investique para qué sirven los comandos de R as.matrix(…) y as.data.frame(…), explique y dé un ejemplo de cada uno.
    • as.matrix(…)
     as.matrix(...) lo que hace es imprimer los datos como una matriz
     ejemplo si creo este vector b=c(1,2,3,4)
    b=c(1,2,3,4)
      y luego hago esto > as.matrix(b)
    as.matrix(b)
    ##      [,1]
    ## [1,]    1
    ## [2,]    2
    ## [3,]    3
    ## [4,]    4
    As.matrix intenta convertir su argumento en una matriz.
    • as.data.frame(…)
     En el caso de as.data.frame(...), es una funcion para comprobar 
     si un objeto es un marco de datos, o coaccionar si es posible.
     Si insertamos lo siguiente: data.frame(enteros=1:10, decimales=seq(.1, 1, by=.1))
    d <- data.frame(enteros=1:10, decimales=seq(.1, 1, by=.1))
      y luego hago esto > as.data.frame(d)
    as.data.frame(d)
    ##    enteros decimales
    ## 1        1       0.1
    ## 2        2       0.2
    ## 3        3       0.3
    ## 4        4       0.4
    ## 5        5       0.5
    ## 6        6       0.6
    ## 7        7       0.7
    ## 8        8       0.8
    ## 9        9       0.9
    ## 10      10       1.0
    as.data.frame intenta convertir su argumento en un marco de datos.

Ejercicio 4

  1. Introduzca usando cóodigo R (no archivos) en un DataFrame la siguiente tabla de datos: Caption for the picture.

    peso <- c(76, 67, 55,57,87,48)
    edad <- c(25, 23, 19,18,57,13)
    nivel.educativo <- c("Lic", "Bach", "Bach","Bach","Dr","MSc")
    df <- data.frame(peso, edad, nivel.educativo)
    df
    ##   peso edad nivel.educativo
    ## 1   76   25             Lic
    ## 2   67   23            Bach
    ## 3   55   19            Bach
    ## 4   57   18            Bach
    ## 5   87   57              Dr
    ## 6   48   13             MSc

Ejercicio 5

  1. Cargue en un DataFrame el archivo “EjemploAlgoritmosRecomendación.csv” y haga lo siguiente:

    getwd()
    ## [1] "C:/Users/admin/Desktop"
    setwd("C:/Users/admin/Desktop/")
    
    Datos<-read.table("EjemploAlgoritmosRecomendacion.csv",header=TRUE,sep=";",dec=",",row.names=1)
    • Calcule la dimensión de la Tabla de Datos.
    dim(Datos)
    ## [1] 100   9
    • Despliegue las primeras 2 columnas de la tabla de datos.
    Datos[1:2]
    ##             Velocidad.Entrega Precio
    ## Adam                     2.05   0.30
    ## Anna                     0.90   1.50
    ## Bernard                  1.70   2.60
    ## Edward                   1.35   0.50
    ## Emilia                   3.00   0.45
    ## Fabian                   0.95   1.65
    ## Philip                   2.30   1.20
    ## Frank                    0.65   2.10
    ## Xavier                   2.75   0.80
    ## Gabriel                  2.00   1.75
    ## Marisol                  1.20   0.80
    ## Henry                    1.95   1.10
    ## Irene                    1.40   0.70
    ## Isabelle                 1.85   0.75
    ## Isidore                  2.35   0.65
    ## Joseph                   1.70   1.00
    ## Eugene                   1.60   2.05
    ## Eugenia                  2.45   0.90
    ## Eunice                   2.65   0.70
    ## Eva                      2.35   0.65
    ## Evdokia                  1.65   0.45
    ## Fedir                    1.70   0.20
    ## Felix                    1.50   2.00
    ## Fialka                   1.20   0.75
    ## Flavia                   2.55   0.70
    ## Flora                    2.30   1.05
    ## Florent                  1.20   0.75
    ## Florence                 2.60   0.65
    ## Hannah                   1.75   1.40
    ## Helen                    2.05   1.85
    ## Herman                   1.50   1.60
    ## Hilary                   1.40   1.90
    ## Lourdes                  2.60   1.00
    ## Isadore                  1.70   1.85
    ## Ivan                     1.20   0.50
    ## Jacob                    0.90   1.65
    ## Jeremiah                 1.80   2.00
    ## Jervis                   2.00   0.45
    ## Joachim                  0.00   1.05
    ## John                     1.20   1.00
    ## Santiago                 0.95   1.70
    ## Josephine                2.95   0.45
    ## Judith                   2.45   1.15
    ## Justin                   2.50   0.65
    ## Kalyna                   1.00   1.30
    ## Larissa                  2.50   1.25
    ## Lawrence                 1.55   0.95
    ## Leon                     1.70   1.95
    ## Leonard                  2.90   0.10
    ## Leonid                   2.70   1.05
    ## Lesia                    1.85   0.35
    ## Leo                      1.30   2.40
    ## Louise                   2.25   2.05
    ## Lubomyr                  1.40   1.20
    ## Lydia                    1.90   0.40
    ## Magdalyna                1.45   1.30
    ## Maksym                   2.45   2.20
    ## Marcel                   2.70   1.25
    ## Margaret                 2.15   0.90
    ## Maria                    1.15   2.25
    ## Marian                   1.55   0.95
    ## Marianna                 2.55   0.95
    ## Markian                  2.05   0.55
    ## Marko                    1.50   1.90
    ## Martha                   0.55   1.00
    ## Martin                   1.85   0.70
    ## Maryna                   2.10   1.25
    ## Matthew                  0.80   2.25
    ## Maura                    2.65   0.85
    ## Maya                     1.15   1.85
    ## Maximillian              1.80   2.70
    ## Melania                  2.80   1.10
    ## Methodius                1.80   1.10
    ## Michael                  2.60   0.65
    ## Michaelina               1.50   1.00
    ## Mina                     2.10   1.20
    ## Monica                   1.90   0.40
    ## Mykyta                   1.65   1.30
    ## Myron                    0.50   0.95
    ## Myroslav                 2.25   0.80
    ## Myroslava                2.75   0.90
    ## Salome                   1.70   2.30
    ## Samuel                   0.80   1.40
    ## Sandra                   1.15   1.85
    ## Sarah                    1.30   1.50
    ## Savina                   1.25   1.55
    ## Sebastian                1.20   1.45
    ## Sophia                   1.05   1.75
    ## Stephan                  1.45   0.60
    ## Stephania                2.15   1.25
    ## Susanna                  1.50   1.40
    ## Sylvan                   2.40   0.85
    ## Sylvester                1.55   2.10
    ## Tamara                   0.95   1.35
    ## Theodore                 2.00   0.25
    ## Teofan                   0.30   0.80
    ## Teofil                   3.05   0.25
    ## Teofila                  1.00   1.40
    ## Teon                     1.55   1.10
    ## Teresa                   1.25   0.90
    • Ejecute un “summary” y un “str” de los datos.
    summary(Datos)
    ##  Velocidad.Entrega     Precio        Durabilidad    Imagen.Producto
    ##  Min.   :0.000     Min.   :0.1000   Min.   :2.500   Min.   :1.250  
    ##  1st Qu.:1.250     1st Qu.:0.7375   1st Qu.:3.350   1st Qu.:2.288  
    ##  Median :1.700     Median :1.0750   Median :4.025   Median :2.500  
    ##  Mean   :1.758     Mean   :1.1820   Mean   :3.947   Mean   :2.624  
    ##  3rd Qu.:2.300     3rd Qu.:1.6125   3rd Qu.:4.550   3rd Qu.:3.000  
    ##  Max.   :3.050     Max.   :2.7000   Max.   :5.000   Max.   :4.100  
    ##  Valor.Educativo Servicio.Retorno Tamano.Paquete  Calidad.Producto
    ##  Min.   :0.700   Min.   :1.100    Min.   :1.850   Min.   :1.600   
    ##  1st Qu.:2.400   1st Qu.:2.200    1st Qu.:2.900   1st Qu.:2.050   
    ##  Median :3.000   Median :2.600    Median :3.575   Median :2.425   
    ##  Mean   :2.916   Mean   :2.665    Mean   :3.486   Mean   :2.385   
    ##  3rd Qu.:3.425   3rd Qu.:3.000    3rd Qu.:4.162   3rd Qu.:2.700   
    ##  Max.   :4.600   Max.   :4.600    Max.   :5.000   Max.   :3.400   
    ##  Numero.Estrellas
    ##  Min.   :1.000   
    ##  1st Qu.:2.400   
    ##  Median :3.150   
    ##  Mean   :3.110   
    ##  3rd Qu.:3.825   
    ##  Max.   :5.000
    str(Datos)
    ## 'data.frame':    100 obs. of  9 variables:
    ##  $ Velocidad.Entrega: num  2.05 0.9 1.7 1.35 3 0.95 2.3 0.65 2.75 2 ...
    ##  $ Precio           : num  0.3 1.5 2.6 0.5 0.45 1.65 1.2 2.1 0.8 1.75 ...
    ##  $ Durabilidad      : num  3.45 3.15 2.85 3.55 4.8 3.95 4.75 3.1 4.7 3.25 ...
    ##  $ Imagen.Producto  : num  2.35 3.3 3 2.95 3.9 2.4 3.3 2.55 2.35 3 ...
    ##  $ Valor.Educativo  : num  2.4 2.5 4.3 1.8 3.4 2.6 3.5 2.8 3.5 3.7 ...
    ##  $ Servicio.Retorno : num  2.3 4 2.7 2.3 4.6 1.9 4.5 2.2 3 3.2 ...
    ##  $ Tamano.Paquete   : num  2.6 4.2 4.1 3.9 2.25 4.85 3.8 3.45 3.8 4.35 ...
    ##  $ Calidad.Producto : num  2.1 2.15 2.6 1.95 3.4 2.2 2.9 2.15 2.7 2.7 ...
    ##  $ Numero.Estrellas : num  1.7 2.8 3.3 1.7 4.3 3 3.1 2.9 4.8 3.9 ...
    • Calcule la Media y la Desviación Estándar para todas las variables
    mean(Datos$Velocidad.Entrega)
    ## [1] 1.7575
    rowMeans(Datos)
    ##        Adam        Anna     Bernard      Edward      Emilia      Fabian 
    ##    2.138889    2.722222    3.016667    2.222222    3.344444    2.611111 
    ##      Philip       Frank      Xavier     Gabriel     Marisol       Henry 
    ##    3.261111    2.433333    3.155556    3.094444    2.261111    2.805556 
    ##       Irene    Isabelle     Isidore      Joseph      Eugene     Eugenia 
    ##    2.161111    2.700000    3.016667    2.494444    2.572222    2.500000 
    ##      Eunice         Eva     Evdokia       Fedir       Felix      Fialka 
    ##    3.188889    3.033333    2.255556    1.827778    3.255556    2.183333 
    ##      Flavia       Flora     Florent    Florence      Hannah       Helen 
    ##    2.627778    2.788889    2.177778    3.155556    2.605556    2.927778 
    ##      Herman      Hilary     Lourdes     Isadore        Ivan       Jacob 
    ##    2.588889    3.122222    3.016667    2.866667    1.911111    2.383333 
    ##    Jeremiah      Jervis     Joachim        John    Santiago   Josephine 
    ##    2.861111    2.666667    2.077778    2.144444    2.450000    3.333333 
    ##      Judith      Justin      Kalyna     Larissa    Lawrence        Leon 
    ##    2.805556    2.550000    2.183333    2.877778    2.655556    2.761111 
    ##     Leonard      Leonid       Lesia         Leo      Louise     Lubomyr 
    ##    2.783333    2.527778    2.400000    3.033333    3.194444    2.405556 
    ##       Lydia   Magdalyna      Maksym      Marcel    Margaret       Maria 
    ##    2.094444    2.850000    3.666667    3.372222    2.583333    2.844444 
    ##      Marian    Marianna     Markian       Marko      Martha      Martin 
    ##    2.622222    2.966667    2.750000    2.422222    2.388889    2.561111 
    ##      Maryna     Matthew       Maura        Maya Maximillian     Melania 
    ##    3.255556    2.588889    2.650000    2.822222    3.150000    2.638889 
    ##   Methodius     Michael  Michaelina        Mina      Monica      Mykyta 
    ##    2.616667    2.972222    2.550000    2.955556    2.466667    2.466667 
    ##       Myron    Myroslav   Myroslava      Salome      Samuel      Sandra 
    ##    2.316667    2.772222    2.744444    3.155556    2.588889    2.544444 
    ##       Sarah      Savina   Sebastian      Sophia     Stephan   Stephania 
    ##    2.850000    2.505556    2.766667    2.427778    2.350000    3.316667 
    ##     Susanna      Sylvan   Sylvester      Tamara    Theodore      Teofan 
    ##    2.966667    2.433333    2.894444    2.216667    2.027778    1.833333 
    ##      Teofil     Teofila        Teon      Teresa 
    ##    3.005556    2.327778    2.661111    2.372222
    apply(Datos,1,mean,na.rm=T)
    ##        Adam        Anna     Bernard      Edward      Emilia      Fabian 
    ##    2.138889    2.722222    3.016667    2.222222    3.344444    2.611111 
    ##      Philip       Frank      Xavier     Gabriel     Marisol       Henry 
    ##    3.261111    2.433333    3.155556    3.094444    2.261111    2.805556 
    ##       Irene    Isabelle     Isidore      Joseph      Eugene     Eugenia 
    ##    2.161111    2.700000    3.016667    2.494444    2.572222    2.500000 
    ##      Eunice         Eva     Evdokia       Fedir       Felix      Fialka 
    ##    3.188889    3.033333    2.255556    1.827778    3.255556    2.183333 
    ##      Flavia       Flora     Florent    Florence      Hannah       Helen 
    ##    2.627778    2.788889    2.177778    3.155556    2.605556    2.927778 
    ##      Herman      Hilary     Lourdes     Isadore        Ivan       Jacob 
    ##    2.588889    3.122222    3.016667    2.866667    1.911111    2.383333 
    ##    Jeremiah      Jervis     Joachim        John    Santiago   Josephine 
    ##    2.861111    2.666667    2.077778    2.144444    2.450000    3.333333 
    ##      Judith      Justin      Kalyna     Larissa    Lawrence        Leon 
    ##    2.805556    2.550000    2.183333    2.877778    2.655556    2.761111 
    ##     Leonard      Leonid       Lesia         Leo      Louise     Lubomyr 
    ##    2.783333    2.527778    2.400000    3.033333    3.194444    2.405556 
    ##       Lydia   Magdalyna      Maksym      Marcel    Margaret       Maria 
    ##    2.094444    2.850000    3.666667    3.372222    2.583333    2.844444 
    ##      Marian    Marianna     Markian       Marko      Martha      Martin 
    ##    2.622222    2.966667    2.750000    2.422222    2.388889    2.561111 
    ##      Maryna     Matthew       Maura        Maya Maximillian     Melania 
    ##    3.255556    2.588889    2.650000    2.822222    3.150000    2.638889 
    ##   Methodius     Michael  Michaelina        Mina      Monica      Mykyta 
    ##    2.616667    2.972222    2.550000    2.955556    2.466667    2.466667 
    ##       Myron    Myroslav   Myroslava      Salome      Samuel      Sandra 
    ##    2.316667    2.772222    2.744444    3.155556    2.588889    2.544444 
    ##       Sarah      Savina   Sebastian      Sophia     Stephan   Stephania 
    ##    2.850000    2.505556    2.766667    2.427778    2.350000    3.316667 
    ##     Susanna      Sylvan   Sylvester      Tamara    Theodore      Teofan 
    ##    2.966667    2.433333    2.894444    2.216667    2.027778    1.833333 
    ##      Teofil     Teofila        Teon      Teresa 
    ##    3.005556    2.327778    2.661111    2.372222
    apply(Datos,1,sd,na.rm=T)
    ##        Adam        Anna     Bernard      Edward      Emilia      Fabian 
    ##   0.8406760   1.0914758   0.7992184   1.0819863   1.3517222   1.1915793 
    ##      Philip       Frank      Xavier     Gabriel     Marisol       Henry 
    ##   1.0856386   0.8116342   1.2357802   0.8512654   1.0576441   1.0681305 
    ##       Irene    Isabelle     Isidore      Joseph      Eugene     Eugenia 
    ##   1.0178954   1.0446291   1.1726039   1.1156401   0.6073051   0.9089829 
    ##      Eunice         Eva     Evdokia       Fedir       Felix      Fialka 
    ##   1.1395662   1.1821590   1.0619688   1.0874601   1.0233048   0.9175375 
    ##      Flavia       Flora     Florent    Florence      Hannah       Helen 
    ##   1.0216748   0.8358296   0.9097084   1.1555422   1.1251235   0.7669384 
    ##      Herman      Hilary     Lourdes     Isadore        Ivan       Jacob 
    ##   0.8429034   1.0106035   1.1442792   0.8671073   1.0273685   0.9344116 
    ##    Jeremiah      Jervis     Joachim        John    Santiago   Josephine 
    ##   0.8745634   1.1263880   1.3681902   1.0826600   0.9357484   1.3532369 
    ##      Judith      Justin      Kalyna     Larissa    Lawrence        Leon 
    ##   1.1495772   1.0059200   1.0207228   1.1423964   1.2506110   0.8713416 
    ##     Leonard      Leonid       Lesia         Leo      Louise     Lubomyr 
    ##   1.2621906   1.1371871   0.9965566   1.0222524   0.8118053   1.0622630 
    ##       Lydia   Magdalyna      Maksym      Marcel    Margaret       Maria 
    ##   1.0786115   1.0021851   0.9575359   1.1688967   0.8100926   1.0150260 
    ##      Marian    Marianna     Markian       Marko      Martha      Martin 
    ##   1.2214518   1.1527142   1.1247222   0.5874261   1.3858160   1.0490406 
    ##      Maryna     Matthew       Maura        Maya Maximillian     Melania 
    ##   1.0687155   0.8038104   1.1597414   1.0814085   0.8200610   1.1712114 
    ##   Methodius     Michael  Michaelina        Mina      Monica      Mykyta 
    ##   1.1222188   1.2091089   0.9572095   1.0745477   0.9968701   1.1213831 
    ##       Myron    Myroslav   Myroslava      Salome      Samuel      Sandra 
    ##   1.3856406   1.0977566   1.1679160   0.8872163   1.0795768   0.8505309 
    ##       Sarah      Savina   Sebastian      Sophia     Stephan   Stephania 
    ##   0.9630680   1.0196336   0.9565563   0.8433976   1.0750000   1.0914440 
    ##     Susanna      Sylvan   Sylvester      Tamara    Theodore      Teofan 
    ##   1.0158125   0.9100137   0.8206112   0.8877640   0.8216261   1.2942179 
    ##      Teofil     Teofila        Teon      Teresa 
    ##   1.2906986   0.9086773   0.9607217   1.0692027
    • Efectúe desde RStudio un Análisis en Componentes Principales para estos datos, luego grafique el plano principal y el círculo de correlaciones.
    plot(Datos)
    • Ejecute desde RStudio un Clustering Jerárquico con la agregación del Salto Máximo, Salto Mínimo, Promedio y Ward, luego haga los gráficos correspondientes.
    cluster con salto maximo
    modelo <- hclust(dist(Datos),method = "complete")
    plot(modelo)

    cluster con Salto Mínimo
    modelo <- hclust(dist(Datos),method = "single")
    plot(modelo)
    rect.hclust(modelo, k=3, border="blue")

    Promedio
    modelo <- hclust(dist(Datos),method = "average")
    plot(modelo)
    rect.hclust(modelo, k=3, border="green")

    Ward
    modelo <- hclust(dist(Datos),method= "ward")
    ## The "ward" method has been renamed to "ward.D"; note new "ward.D2"
    plot(modelo)
    rect.hclust(modelo, k=3, border="magenta")

Ejercicio 6

  1. Usando el archivo de datos EjemploAlgoritmosRecomendacion.csv realice lo siguiente:
    • a) Grafique usando los comandos plot y qplot en el plano XY las variables Entrega vs Precio.
    library(ggplot2) 
    plot(Datos$Velocidad.Entrega,Datos$Precio)

    qplot(Datos$Velocidad.Entrega,Datos$Precio)

    qplot(Velocidad.Entrega,Precio, data = Datos)

Ejercicio 7

  1. En muchas ocasiones nos interesa hacer referencia a determinadas partes o componentes de un vector. Defina el vector x = (2,-5,4,6,-2, 8), luego a partir de este vector defina instrucciones en R para generar los siguientes vectores:

    x <-c (2,-5,4,6,-2,8)
    x
    ## [1]  2 -5  4  6 -2  8
    • y = (2, 4, 6, 8), así definido y es el vector formado por las componentes positivas de x.
    y<- x[x > 0 & (x%%2)==0]
    y
    ## [1] 2 4 6 8
    • z = (-5,-2), así definido z es el vector formado por las componentes negativas de x.
    z<-x[x < 0 ]
    z
    ## [1] -5 -2
    • v = (-5, 4, 6, -2, 8), así definido v es el vector x eliminada la primera componente.
    v<-x[-c(1)]
    v
    ## [1] -5  4  6 -2  8
    • w = (2, 4, -2). así definido w es el vector x tomando las componentes impares.
    w<-x[-c(seq(0,length(x),x[1]))]
    w
    ## [1]  2  4 -2

    Ejercicio 8

  2. Queremos representar gráficamente la función coseno en el intervalo [0, 2*pi]. Para esto creamos el vector x de la siguiente forma x<-seq(0,2*pi,length=100). ¿Cuál es la diferencia entre las gráficas obtenidas por comandos plot?

    x<-seq(0,2*pi,length=100)
    plot(cos(x))

    plot(x,cos(x),col="red")

    Lo mas importante es que el color es distinto, y segundo el eje X posee una distribución completamente diferente. Uno va de 0-100 y el otro de 0-7.

    Ejercicio 9

  3. Usando plot genere en R los siguientes gráficos: Caption for the picture.

    plot(sin, -pi, pi,col="green", xlim=c(-4,4), ylim=c(-1.0,1.0))
    par(new=TRUE)
    plot(cos, -pi, pi,col="blue", xlim=c(-4,4), ylim=c(-1.0,1.0), xlab="", ylab="",  axes=FALSE)

    Caption for the picture.

    x <- -10:10
    y <- (x^2)
    plot(x, y, main = "A parabola",col="red", type="b",pch = 18)

    Caption for the picture.

    plot(2:15,col=2:15,xlim=c(5,15), ylim=c(10,25), main="Default 9 Colors", pch=19, cex=10)

Ejercicio 10

  1. Para tabla de Datos que viene en el archivo DJTable.csv el cual contiene los valores de las acciones de las principales empresas de Estados Unidos en el año 2010, usando el comando plot de R, grafique (en un mismo gráfico) las series de valores de las acciones de las empresas CSCO (Cisco), IBM, INTC (Intel) y MSFT (Microsoft).

    setwd("C:/Users/admin/Desktop/")
    Datos<-read.table("DJTable.csv",header=TRUE,sep=";",dec=".",row.names=1)
    require(stats)
    plot(main="Datos",Datos$CSCO, xlab="", ylab="", col="blue")
    par(new=TRUE)
    plot(main="Datos",Datos$IBM, xlab="", ylab="", col="green",axes=FALSE)
    par(new=TRUE)
    plot(main="Datos",Datos$INTC, xlab="", ylab="", col="yellow",axes=FALSE)
    par(new=TRUE)
    plot(main="Datos",Datos$MSFT, xlab="", ylab="", col="pink",axes=FALSE)

Ejercicio 11

  1. Repita el ejercicio anterior usando funciones del paquete ggplot2.

    qplot(Datos$CSCO, color="blue") 
    ## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

    qqplot("10","10",Datos$CSCO)
    ## Warning in if (plot.it) plot(sx, sy, xlab = xlab, ylab = ylab, ...): la
    ## condición tiene longitud > 1 y sólo el primer elemento será usado

    library(ggplot2) 
    qplot(mpg, data=mtcars, geom="density", fill=gear, alpha=I(.5), 
      main="Distribution of Gas Milage", xlab="Miles Per Gallon", 
      ylab="Density")

    qplot(mpg, data=mtcars, geom="density", fill=gear, alpha=I(.5), 
      main="Distribution of Gas Milage", xlab="Miles Per Gallon", 
      ylab="Month")

    qplot(Datos$CSCO)
    ## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

    qplot(Datos$IBM)
    ## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

    qplot(Datos$INTC)
    ## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

    qplot(Datos$MSFT)
    ## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Ejercicio 12

  1. Programe en R una función que genera 200 números al azar entre 1 y 500 y luego calcula cuántos están entre el 50 y 450, ambos inclusive.

    aleatorios <- runif(200, 1, 500)
    num=0
    for (x in aleatorios) {
      if(x>49&x<451){
    num=num+1
      }
    }
    print(num)
    ## [1] 167

    Ejercicio 13

  2. Desarrolle una función que calcula el costo de una llamada telefónica que ha durado t minutos sabiendo que si t < 1 el costo es de 0;4 dólares, mientras que para duraciones superiores el costo es de 0,4 + (t - 1)/4 dólares, la función debe recibir el valor de t.

    calculo <- function(t) {
      if(t<1){
    0.4
      }else{
    0.4 + (t-1)/4
      }
    }
    calculo(1)
    ## [1] 0.4

    Ejercicio 14

  3. Desarrolle una función que recibe una matriz cuadrada A de tamaño n x n y calcula su traza, es decir, la suma de los elementos de la diagonal. Por ejemplo, la traza de la siguiente matriz: Caption for the picture.

    calcula.traza<-function(T){
       sum(diag(T))
    }
    A = matrix(c(9, 3, 4, 1, 3, -1, 4, 12, -2), nrow=3, ncol=3, byrow = TRUE)
    A
    ##      [,1] [,2] [,3]
    ## [1,]    9    3    4
    ## [2,]    1    3   -1
    ## [3,]    4   12   -2
    calcula.traza(A)
    ## [1] 10

    Ejercicio 15

  4. Escribir una función que genere los n primeros términos de la serie de Fibonacci.

    Fibonnacci<-function (n,num1=0,num2=1,cant=1){
      if(n>0){
      if(n>=cant){
    print(num1)
    Fibonnacci(n,num1+num2,num1,cant+1)
      }
      }
    }
    
    Fibonnacci(5)
    ## [1] 0
    ## [1] 1
    ## [1] 1
    ## [1] 2
    ## [1] 3

    Ejercicio 16

  5. Escriba una función que retorne cuál es el mayor número entero cuyo cuadrado no excede de x donde x es un número real que se recibe como parámetro, utilizando while.

    Falta

    Ejercicio 17

  6. Crear un Data Frame con diez alumnos con su edad, año de nacimiento y número de teléfono. Deberá aparecer el nombre de la columna (edad, año de nacimiento, teléfono) y el nombre de la fila, que será el nombre del alumno al que corresponden los datos.

    edad = c(25, 23, 19,18,24,13,19,21,20,22)
    anno.naciemiento = c(1992, 1994,1998,1997,1993 ,2004,1998,1996,1997,1995)
    numero.telefono = c("88127361", "88127362", "60127361","60127362","72127361",
                    "72127362","50127361","50127362","21273161","25626363")
    df = data.frame(row.names =   c("h1","h2","h3","h4","h5","h6","h7","h8","h9","h10") , edad, anno.naciemiento, numero.telefono)
    
    
    df
    ##     edad anno.naciemiento numero.telefono
    ## h1    25             1992        88127361
    ## h2    23             1994        88127362
    ## h3    19             1998        60127361
    ## h4    18             1997        60127362
    ## h5    24             1993        72127361
    ## h6    13             2004        72127362
    ## h7    19             1998        50127361
    ## h8    21             1996        50127362
    ## h9    20             1997        21273161
    ## h10   22             1995        25626363

    Ejercicio 18

  7. Desarrolle una función R que recibe un DataFrame que retorna la cantidad de entradas de este DataFrame que son divisibles entre 3.

    Falta

    Ejercicio 19

  8. Desarrolle una función R que recibe un DataFrame y dos números de columna y que retorna en una lista el nombre de las variables correspondientes a las columnas, la covarianza y la correlación entre esas dos variables.

    edad=c(10,12,15)
    anno.Nacimiento=c(2000,1998,1995)
    numero.telefono=c(1,2,3)
    df=data.frame(row.names = c("h1","h2","h3"),edad,anno.Nacimiento,numero.telefono)
    
    
    listarNombreVariables<-function(df,pos1,pos2){
      if(ncol(df)>=pos1 & ncol(df)>=pos2){
      c(df[pos1],df[pos2],cov(df[pos1],df[pos2]))
      }else{
    "no valido"
      }
    }
    
    listarNombreVariables(df,1,2)
    ## $edad
    ## [1] 10 12 15
    ## 
    ## $anno.Nacimiento
    ## [1] 2000 1998 1995
    ## 
    ## [[3]]
    ## [1] -6.333333

Ejercicio 20

  1. La siguiente función generate se utiliza para generar un conjunto de datos. Vamos a utilizar esta función para generar algunos datos a los que vamos a aplicar algunas de las técnicas de clustering más adelante en el curso.

    • Explique, lo más explícitamente posible, la distribución de los datos generados por esta función con extradim = 0 utilizando todos los argumentos (parametros) predeterminados.
    centers = matrix(c(0,3,1,3,0,4), 3, 2, byrow=T) 
    centers
    ##      [,1] [,2]
    ## [1,]    0    3
    ## [2,]    1    3
    ## [3,]    0    4
    generate = function(n=50, extradim=0, sigma=1, mu=7) { 
    data1 = matrix(rnorm(n*2), n, 2) * sigma
    data1[,1] = data1[,1] + centers[1,1] * mu 
    data1[,2] = data1[,2] + centers[1,2] * mu 
    data2 = matrix(rnorm(n*2), n, 2) * sigma 
    data2[,1] = data2[,1] + centers[2,1] * mu 
    data2[,2] = data2[,2] + centers[2,2] * mu 
    data3 = matrix(rnorm(n*2), n, 2) * sigma 
    data3[,1] = data3[,1] + centers[3,1] * mu 
    data3[,2] = data3[,2] + centers[3,2] * mu 
    data = rbind(data1,data2,data3) 
    if (extradim > 0) {
      noise = matrix(rnorm(3*n*extradim)*sigma, 3*n, extradim) 
      data = cbind(data, noise) } 
    return(data)
    }
    generate()
    ##                [,1]     [,2]
    ##   [1,]  1.944568742 21.29737
    ##   [2,] -0.109433610 21.43877
    ##   [3,]  0.855903903 20.96385
    ##   [4,]  0.366458254 20.53272
    ##   [5,] -0.337672677 20.42545
    ##   [6,] -0.422387876 21.40032
    ##   [7,]  0.489877867 21.49210
    ##   [8,] -0.859630951 22.30948
    ##   [9,] -0.941115424 23.07679
    ##  [10,]  1.277739606 20.42212
    ##  [11,] -0.728238953 20.68919
    ##  [12,] -1.058282861 22.45591
    ##  [13,] -0.345726325 22.43220
    ##  [14,] -0.179517620 22.56121
    ##  [15,]  0.241137349 22.02736
    ##  [16,] -0.256804458 20.14917
    ##  [17,]  0.316963607 20.83007
    ##  [18,] -1.590762789 20.78355
    ##  [19,]  1.162237400 21.95687
    ##  [20,]  1.765147579 21.16409
    ##  [21,] -0.529430711 21.60456
    ##  [22,]  0.913498936 19.09989
    ##  [23,] -1.367001564 21.96795
    ##  [24,] -0.121738584 19.53727
    ##  [25,] -0.866566531 21.08486
    ##  [26,]  0.397866842 22.49314
    ##  [27,]  0.154534571 21.43090
    ##  [28,] -0.631320216 21.90001
    ##  [29,] -0.035361238 19.89075
    ##  [30,]  2.075828180 19.86866
    ##  [31,]  0.597520172 22.05082
    ##  [32,] -0.274725699 22.55855
    ##  [33,]  0.682155432 20.16557
    ##  [34,]  0.521309830 20.72853
    ##  [35,] -1.861220921 23.17764
    ##  [36,] -0.833256431 21.85582
    ##  [37,]  0.382514689 21.29260
    ##  [38,]  0.564797361 23.99503
    ##  [39,] -0.563920900 20.05489
    ##  [40,]  1.130449795 22.47832
    ##  [41,]  0.811000970 21.32250
    ##  [42,] -0.579306916 21.74850
    ##  [43,]  0.138081364 19.54415
    ##  [44,]  0.723212479 23.03931
    ##  [45,]  0.764605632 19.96281
    ##  [46,]  0.673343077 21.35319
    ##  [47,]  0.014732377 21.57175
    ##  [48,]  0.111808557 21.66012
    ##  [49,]  0.319722081 20.35554
    ##  [50,] -0.585423209 20.19041
    ##  [51,]  7.135411126 20.21029
    ##  [52,]  9.020568219 21.38982
    ##  [53,]  5.985558398 23.26254
    ##  [54,]  6.738980448 21.87481
    ##  [55,]  5.228330327 20.61908
    ##  [56,]  8.755758867 21.43466
    ##  [57,]  7.136919145 21.94797
    ##  [58,]  6.621858787 21.63054
    ##  [59,]  8.711513148 20.99721
    ##  [60,]  6.877397559 21.04165
    ##  [61,]  8.595902462 21.13351
    ##  [62,]  7.152799888 20.88304
    ##  [63,]  5.479323243 20.47061
    ##  [64,]  6.867651409 19.85010
    ##  [65,]  5.418383139 21.93347
    ##  [66,]  8.213025690 21.94836
    ##  [67,]  6.249300032 20.69784
    ##  [68,]  6.470887055 21.82452
    ##  [69,]  5.281801909 19.82497
    ##  [70,]  7.550996844 21.91092
    ##  [71,]  8.422066463 19.19532
    ##  [72,]  7.122296126 22.56238
    ##  [73,]  6.601998622 22.65657
    ##  [74,]  6.015962374 20.15356
    ##  [75,]  5.288564013 22.43422
    ##  [76,]  8.975118851 21.84799
    ##  [77,]  6.298702749 22.35207
    ##  [78,]  6.515552389 20.88491
    ##  [79,]  8.469042529 21.23535
    ##  [80,]  7.045889566 20.57388
    ##  [81,]  6.478765474 22.12380
    ##  [82,]  8.102025645 21.77822
    ##  [83,]  7.615767145 21.26871
    ##  [84,]  8.291837916 21.88074
    ##  [85,]  5.789749768 21.91619
    ##  [86,]  5.902255716 19.65116
    ##  [87,]  8.010173919 18.87013
    ##  [88,]  7.077401736 18.72565
    ##  [89,]  7.547708066 22.93841
    ##  [90,]  7.387207501 19.88703
    ##  [91,]  7.028720642 20.76816
    ##  [92,]  8.003934096 21.47108
    ##  [93,]  4.693344044 19.91033
    ##  [94,]  8.665212047 21.74044
    ##  [95,]  7.184988692 21.85742
    ##  [96,]  8.016266371 21.07642
    ##  [97,]  7.942188344 19.89032
    ##  [98,]  6.344766344 21.71521
    ##  [99,]  6.292035179 20.75654
    ## [100,]  6.546173416 20.82295
    ## [101,]  0.214183543 29.13274
    ## [102,] -0.196403326 28.56168
    ## [103,]  0.235378529 28.49951
    ## [104,]  0.766360046 28.12083
    ## [105,] -1.207097956 28.15938
    ## [106,]  0.114581934 26.34526
    ## [107,]  0.641416373 28.39762
    ## [108,] -0.665820508 28.38318
    ## [109,] -0.656861210 27.39474
    ## [110,] -0.318571624 28.34092
    ## [111,]  0.585587064 28.67159
    ## [112,]  0.626387140 29.54274
    ## [113,] -1.458025724 28.28064
    ## [114,]  1.675345469 26.91309
    ## [115,]  0.556199565 28.25505
    ## [116,] -0.005885398 28.37541
    ## [117,]  1.005346761 28.58946
    ## [118,] -0.474630730 28.44624
    ## [119,] -0.876478512 28.28971
    ## [120,] -1.298841853 29.29843
    ## [121,]  1.809985290 28.12479
    ## [122,] -1.440227091 26.81953
    ## [123,]  0.616321605 29.08648
    ## [124,] -0.009529602 28.62778
    ## [125,]  0.417237366 29.04148
    ## [126,]  0.515268965 29.01148
    ## [127,] -1.316543671 27.43062
    ## [128,] -0.494835694 26.91201
    ## [129,]  1.038608715 26.96161
    ## [130,] -0.461960307 26.83164
    ## [131,]  0.682746684 27.36420
    ## [132,] -0.420219586 25.56770
    ## [133,]  1.378279204 28.04420
    ## [134,] -0.844049082 28.80645
    ## [135,] -0.330265931 28.39994
    ## [136,] -0.639784745 27.80425
    ## [137,]  0.615972205 28.27968
    ## [138,] -2.632954585 29.84390
    ## [139,] -0.229467219 27.41764
    ## [140,] -0.437063755 28.58162
    ## [141,]  1.297371270 25.94257
    ## [142,] -1.563870945 28.91141
    ## [143,]  0.225277213 28.07241
    ## [144,]  1.435002329 30.47403
    ## [145,] -0.104216164 28.81927
    ## [146,]  0.219564080 27.95135
    ## [147,] -0.622177905 26.46010
    ## [148,]  0.041276810 26.84572
    ## [149,]  0.052576655 28.39554
    ## [150,] -1.628679527 28.06693
    La distribución de datos sigue una distribucion de poisson debudo al sigma y el mu
    • ¿Qué hace el argumento extradim en esta función? ¿Espera usted que será más fácil o más difícil producir una buena agrupación con extradim >0? ¿Porqué o porqué no?
    el extradim genera mas entradas por cada fila, al tener mas valores se pretende tener mas facil tener una buena agrupacion
    • Explique qué hace el siguiente código:
    Data3 = generate(extradim=0)
    se generan las entradas
    plot(Data3) 

    se grafica
    for(i in 1:50) { points(Data3[i,1],Data3[i,2],pch=19,col="blue") } 
    se agregan los colores
    for(i in 51:100) {
      points(Data3[i,1],Data3[i,2],pch=19,col="red") 
    } 
    for(i in 101:150) { 
      points(Data3[i,1],Data3[i,2],pch=19,col="green") 
    } 
    • Realice un gráfico similar al anterior pero en 3 dimensiones usando el paquete scatterplot3d de R, para esto debe generar datos usando la función generate modificando el parámetro extradim.
    require(scatterplot3d)
    Data4 = generate(extradim=1)
    
    x = Data4[,1]
    y = Data4[,2]
    z = Data4[,3]
    
    scatterplot3d(x, y, z, highlight.3d = TRUE, col.axis = "blue",
              col.grid = "lightblue", main = "Helix", pch = 20)

Ejercicio 21

  1. Importe directamente desde Excel en R el archivo EjemploAlgoritmosRecomendación.xlsx el cual contiene los promedios de evaluación de 100 personas que adquirieron los mismos productos o muy similares en la tienda AMAZON. Luego efectúe un Análisis en Componentes Principales para estos datos, grafique que el plano principal y el círculo de correlaciones…

    getwd()
    ## [1] "C:/Users/admin/Desktop"
    setwd("C:/Users/admin/Desktop/")
    Datos<-read.table("EjemploAlgoritmosRecomendacion.csv",header=TRUE,sep=";",dec=",",row.names=1)
    
    ncol(Datos)
    ## [1] 9
    nrow(Datos)
    ## [1] 100
    cor(Datos)
    ##                   Velocidad.Entrega      Precio Durabilidad
    ## Velocidad.Entrega        1.00000000 -0.34922515  0.50929519
    ## Precio                  -0.34922515  1.00000000 -0.48721259
    ## Durabilidad              0.50929519 -0.48721259  1.00000000
    ## Imagen.Producto          0.05041420  0.27218676 -0.11610408
    ## Valor.Educativo          0.61190069  0.51298082  0.06661728
    ## Servicio.Retorno         0.07711522  0.18624325 -0.03431610
    ## Tamano.Paquete          -0.48263094  0.46974578 -0.44811201
    ## Calidad.Producto         0.65063233  0.02839467  0.52481415
    ## Numero.Estrellas         0.67646626  0.08191709  0.55903893
    ##                   Imagen.Producto Valor.Educativo Servicio.Retorno
    ## Velocidad.Entrega       0.0504142      0.61190069       0.07711522
    ## Precio                  0.2721868      0.51298082       0.18624325
    ## Durabilidad            -0.1161041      0.06661728      -0.03431610
    ## Imagen.Producto         1.0000000      0.29867737       0.78822454
    ## Valor.Educativo         0.2986774      1.00000000       0.24080818
    ## Servicio.Retorno        0.7882245      0.24080818       1.00000000
    ## Tamano.Paquete          0.1999811     -0.05516130       0.17729392
    ## Calidad.Producto        0.4759338      0.63123290       0.34090930
    ## Numero.Estrellas        0.2241884      0.70069608       0.25605904
    ##                   Tamano.Paquete Calidad.Producto Numero.Estrellas
    ## Velocidad.Entrega     -0.4826309       0.65063233       0.67646626
    ## Precio                 0.4697458       0.02839467       0.08191709
    ## Durabilidad           -0.4481120       0.52481415       0.55903893
    ## Imagen.Producto        0.1999811       0.47593383       0.22418841
    ## Valor.Educativo       -0.0551613       0.63123290       0.70069608
    ## Servicio.Retorno       0.1772939       0.34090930       0.25605904
    ## Tamano.Paquete         1.0000000      -0.28333980      -0.19246648
    ## Calidad.Producto      -0.2833398       1.00000000       0.71069754
    ## Numero.Estrellas      -0.1924665       0.71069754       1.00000000
    cov(Datos)
    ##                   Velocidad.Entrega       Precio Durabilidad
    ## Velocidad.Entrega        0.43607955 -0.137868687  0.23315404
    ## Precio                  -0.13786869  0.357400000 -0.20192323
    ## Durabilidad              0.23315404 -0.201923232  0.48059697
    ## Imagen.Producto          0.01883333  0.092052525 -0.04553333
    ## Valor.Educativo          0.30356566  0.230391919  0.03469495
    ## Servicio.Retorno         0.03925505  0.085828283 -0.01833838
    ## Tamano.Paquete          -0.25261742  0.222589899 -0.24623081
    ## Calidad.Producto         0.18379672  0.007261616  0.15563788
    ## Numero.Estrellas         0.40154040  0.044020202  0.34836364
    ##                   Imagen.Producto Valor.Educativo Servicio.Retorno
    ## Velocidad.Entrega      0.01883333      0.30356566       0.03925505
    ## Precio                 0.09205253      0.23039192       0.08582828
    ## Durabilidad           -0.04553333      0.03469495      -0.01833838
    ## Imagen.Producto        0.32002424      0.12693535       0.34372727
    ## Valor.Educativo        0.12693535      0.56438788       0.13945455
    ## Servicio.Retorno       0.34372727      0.13945455       0.59421717
    ## Tamano.Paquete         0.08966970     -0.03284646       0.10832576
    ## Calidad.Producto       0.11517475      0.20286061       0.11241667
    ## Numero.Estrellas       0.11400000      0.47317172       0.17742424
    ##                   Tamano.Paquete Calidad.Producto Numero.Estrellas
    ## Velocidad.Entrega    -0.25261742      0.183796717        0.4015404
    ## Precio                0.22258990      0.007261616        0.0440202
    ## Durabilidad          -0.24623081      0.155637879        0.3483636
    ## Imagen.Producto       0.08966970      0.115174747        0.1140000
    ## Valor.Educativo      -0.03284646      0.202860606        0.4731717
    ## Servicio.Retorno      0.10832576      0.112416667        0.1774242
    ## Tamano.Paquete        0.62824722     -0.096070960       -0.1371263
    ## Calidad.Producto     -0.09607096      0.182994697        0.2732778
    ## Numero.Estrellas     -0.13712626      0.273277778        0.8079798
    apply(Datos,1,sd,na.rm=T)
    ##        Adam        Anna     Bernard      Edward      Emilia      Fabian 
    ##   0.8406760   1.0914758   0.7992184   1.0819863   1.3517222   1.1915793 
    ##      Philip       Frank      Xavier     Gabriel     Marisol       Henry 
    ##   1.0856386   0.8116342   1.2357802   0.8512654   1.0576441   1.0681305 
    ##       Irene    Isabelle     Isidore      Joseph      Eugene     Eugenia 
    ##   1.0178954   1.0446291   1.1726039   1.1156401   0.6073051   0.9089829 
    ##      Eunice         Eva     Evdokia       Fedir       Felix      Fialka 
    ##   1.1395662   1.1821590   1.0619688   1.0874601   1.0233048   0.9175375 
    ##      Flavia       Flora     Florent    Florence      Hannah       Helen 
    ##   1.0216748   0.8358296   0.9097084   1.1555422   1.1251235   0.7669384 
    ##      Herman      Hilary     Lourdes     Isadore        Ivan       Jacob 
    ##   0.8429034   1.0106035   1.1442792   0.8671073   1.0273685   0.9344116 
    ##    Jeremiah      Jervis     Joachim        John    Santiago   Josephine 
    ##   0.8745634   1.1263880   1.3681902   1.0826600   0.9357484   1.3532369 
    ##      Judith      Justin      Kalyna     Larissa    Lawrence        Leon 
    ##   1.1495772   1.0059200   1.0207228   1.1423964   1.2506110   0.8713416 
    ##     Leonard      Leonid       Lesia         Leo      Louise     Lubomyr 
    ##   1.2621906   1.1371871   0.9965566   1.0222524   0.8118053   1.0622630 
    ##       Lydia   Magdalyna      Maksym      Marcel    Margaret       Maria 
    ##   1.0786115   1.0021851   0.9575359   1.1688967   0.8100926   1.0150260 
    ##      Marian    Marianna     Markian       Marko      Martha      Martin 
    ##   1.2214518   1.1527142   1.1247222   0.5874261   1.3858160   1.0490406 
    ##      Maryna     Matthew       Maura        Maya Maximillian     Melania 
    ##   1.0687155   0.8038104   1.1597414   1.0814085   0.8200610   1.1712114 
    ##   Methodius     Michael  Michaelina        Mina      Monica      Mykyta 
    ##   1.1222188   1.2091089   0.9572095   1.0745477   0.9968701   1.1213831 
    ##       Myron    Myroslav   Myroslava      Salome      Samuel      Sandra 
    ##   1.3856406   1.0977566   1.1679160   0.8872163   1.0795768   0.8505309 
    ##       Sarah      Savina   Sebastian      Sophia     Stephan   Stephania 
    ##   0.9630680   1.0196336   0.9565563   0.8433976   1.0750000   1.0914440 
    ##     Susanna      Sylvan   Sylvester      Tamara    Theodore      Teofan 
    ##   1.0158125   0.9100137   0.8206112   0.8877640   0.8216261   1.2942179 
    ##      Teofil     Teofila        Teon      Teresa 
    ##   1.2906986   0.9086773   0.9607217   1.0692027
    apply(Datos,1,mean,na.rm=T)
    ##        Adam        Anna     Bernard      Edward      Emilia      Fabian 
    ##    2.138889    2.722222    3.016667    2.222222    3.344444    2.611111 
    ##      Philip       Frank      Xavier     Gabriel     Marisol       Henry 
    ##    3.261111    2.433333    3.155556    3.094444    2.261111    2.805556 
    ##       Irene    Isabelle     Isidore      Joseph      Eugene     Eugenia 
    ##    2.161111    2.700000    3.016667    2.494444    2.572222    2.500000 
    ##      Eunice         Eva     Evdokia       Fedir       Felix      Fialka 
    ##    3.188889    3.033333    2.255556    1.827778    3.255556    2.183333 
    ##      Flavia       Flora     Florent    Florence      Hannah       Helen 
    ##    2.627778    2.788889    2.177778    3.155556    2.605556    2.927778 
    ##      Herman      Hilary     Lourdes     Isadore        Ivan       Jacob 
    ##    2.588889    3.122222    3.016667    2.866667    1.911111    2.383333 
    ##    Jeremiah      Jervis     Joachim        John    Santiago   Josephine 
    ##    2.861111    2.666667    2.077778    2.144444    2.450000    3.333333 
    ##      Judith      Justin      Kalyna     Larissa    Lawrence        Leon 
    ##    2.805556    2.550000    2.183333    2.877778    2.655556    2.761111 
    ##     Leonard      Leonid       Lesia         Leo      Louise     Lubomyr 
    ##    2.783333    2.527778    2.400000    3.033333    3.194444    2.405556 
    ##       Lydia   Magdalyna      Maksym      Marcel    Margaret       Maria 
    ##    2.094444    2.850000    3.666667    3.372222    2.583333    2.844444 
    ##      Marian    Marianna     Markian       Marko      Martha      Martin 
    ##    2.622222    2.966667    2.750000    2.422222    2.388889    2.561111 
    ##      Maryna     Matthew       Maura        Maya Maximillian     Melania 
    ##    3.255556    2.588889    2.650000    2.822222    3.150000    2.638889 
    ##   Methodius     Michael  Michaelina        Mina      Monica      Mykyta 
    ##    2.616667    2.972222    2.550000    2.955556    2.466667    2.466667 
    ##       Myron    Myroslav   Myroslava      Salome      Samuel      Sandra 
    ##    2.316667    2.772222    2.744444    3.155556    2.588889    2.544444 
    ##       Sarah      Savina   Sebastian      Sophia     Stephan   Stephania 
    ##    2.850000    2.505556    2.766667    2.427778    2.350000    3.316667 
    ##     Susanna      Sylvan   Sylvester      Tamara    Theodore      Teofan 
    ##    2.966667    2.433333    2.894444    2.216667    2.027778    1.833333 
    ##      Teofil     Teofila        Teon      Teresa 
    ##    3.005556    2.327778    2.661111    2.372222
    plot(Datos)

Ejercicio 22

  1. Conexión entre R y MySQL:
    • a) Cargue en R la tabla de datos payment que viene en MySQL dentro la Base de Datos sakila, para esto debe crear un ODBC asociado a esta Base de Datos.
    suppressWarnings(suppressMessages(library(RODBC)))
    canal2 <- odbcConnect("RMYSQL2", uid = "root")
    datos <- sqlQuery(canal2, "SELECT * FROM payment")
    • b)Elimine las columnas 1, 6 y 7 de la tabla de datos, luego en tabla resultante efectúe un proceso k -medias con k = 6, para finalmente guardar la tabla de datos con una nueva columna denominada Cluster (que indica en qué cluster quedó cada fila) en la Base de Datos sakila como una tabla con nombre TGrupos.
    datos <- datos[,c(-1,-6,-7)]
    datos0<-datos[,1:4]
    set.seed(2000)
    datos2<-scale(datos0)
    k<-6
    km<-kmeans(model.matrix(~.+0, data=datos0), k)
    df2=data.frame(km[1])
    sqlDrop(canal2, "TGrupos", errors = FALSE)
    sqlSave(canal2, df2, tablename = "TGrupos")