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
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
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
x[2:7]
## [1] -5 31 -1 -9 10 0
y[-c(2,7)]
## [1] 1 -3 1 -99 -10 -7
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
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
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
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.
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.
Introduzca usando cóodigo R (no archivos) en un DataFrame la siguiente tabla de datos:
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
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)
dim(Datos)
## [1] 100 9
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
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 ...
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
plot(Datos)
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")
library(ggplot2)
plot(Datos$Velocidad.Entrega,Datos$Precio)
qplot(Datos$Velocidad.Entrega,Datos$Precio)
qplot(Velocidad.Entrega,Precio, data = Datos)
b) Grafique usando comando scatterplot3d en 3 dimensiones las variables Entrega, Precio y Durabilidad.
library(scatterplot3d)
library(rgl)
require(scatterplot3d)
x = Datos$Velocidad.Entrega
y = Datos$Precio
z = Datos$Durabilidad
scatterplot3d(x, y, z, highlight.3d = TRUE, col.axis = "blue",
col.grid = "lightblue", main = "Helix", pch = 20)
c) Usando el comando cor calcule la matriz de correlaciones de la tabla EjemploAlgoritmosRecomendacion.csv y grafique esta matriz de 4 formas diferentes.
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
plot(cor(Datos))
barplot(cor(Datos))
hist(cor(Datos))
points(cor(Datos), type="p")
contour(cor(Datos))
d) Usando el comando Boxplot encuentre los datos atípicos de la tabla de datos EjemploAlgoritmosRecomendacion.csv.
boxplot(Datos,main="Ejemplo algoritmos",
xlab="Categorias", ylab="Escala")
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<- x[x > 0 & (x%%2)==0]
y
## [1] 2 4 6 8
z<-x[x < 0 ]
z
## [1] -5 -2
v<-x[-c(1)]
v
## [1] -5 4 6 -2 8
w<-x[-c(seq(0,length(x),x[1]))]
w
## [1] 2 4 -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.
Usando plot genere en R los siguientes gráficos:
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)
x <- -10:10
y <- (x^2)
plot(x, y, main = "A parabola",col="red", type="b",pch = 18)
plot(2:15,col=2:15,xlim=c(5,15), ylim=c(10,25), main="Default 9 Colors", pch=19, cex=10)
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)
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`.
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
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
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:
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
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
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
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
Desarrolle una función R que recibe un DataFrame que retorna la cantidad de entradas de este DataFrame que son divisibles entre 3.
Falta
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
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.
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
el extradim genera mas entradas por cada fila, al tener mas valores se pretende tener mas facil tener una buena agrupacion
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")
}
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)
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)
suppressWarnings(suppressMessages(library(RODBC)))
canal2 <- odbcConnect("RMYSQL2", uid = "root")
datos <- sqlQuery(canal2, "SELECT * FROM payment")
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")