Visit my repositories: “https://github.com/geraldmoreno993”
3+4
## [1] 7
7*4
## [1] 28
5-1
## [1] 4
sqrt(25)
## [1] 5
sqrt(27)
## [1] 5.196152
sqrt(-3)
## Warning in sqrt(-3): Se han producido NaNs
## [1] NaN
27**(1/3)
## [1] 3
4^2
## [1] 16
class(4.4)
## [1] "numeric"
class(4.0004)
## [1] "numeric"
class(TRUE)
## [1] "logical"
class("hola papa")
## [1] "character"
help(log)
log(50, base= 3) + (30*(3 - 5.4))
## [1] -68.43912
(log(20.3, base= 2)/(80^1/4)) + ((43-5)/sqrt(34))
## [1] 6.734117
Palabra en cursiva hola
mi.vector <- c(1,2,3,4,3,2,2)
length(mi.vector)
## [1] 7
vector = c(1,2,3,4,5,4,3,2,1.1)
class(vector)
## [1] "numeric"
v1 <- c(3.1,4.5,7.8)
class(v1)
## [1] "numeric"
a <- c(1,2,3,4)
b <- c(2,3,4,4)
m1 <- cbind(a,b)
m2 <- rbind(a,b)
class(m1)
## [1] "matrix" "array"
class(m2)
## [1] "matrix" "array"
M <- matrix(1:9, nrow = 3, ncol = 3, byrow = T)
M
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
## [3,] 7 8 9
class(M)
## [1] "matrix" "array"
length(M)
## [1] 9
M
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
## [3,] 7 8 9
#Primeras 3 filas
M[, 1]
## [1] 1 4 7
M[, 2]
## [1] 2 5 8
M[, 3]
## [1] 3 6 9
#Segunda columna
M[2, ] #Automaticamente la 3era fila paso a ser la 2da
## [1] 4 5 6
#Extrayendo filas 1 y 3
M[c(1,3),]
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 7 8 9
#Corre esto y dime lo que sucede
M[c(1, 3), c(2, 3)]
## [,1] [,2]
## [1,] 2 3
## [2,] 8 9
i <- iris
d <- i[1]
class(d)
## [1] "data.frame"
df <- i["Sepal.Length"]
class(df)
## [1] "data.frame"
x <- i[,"Sepal.Length"]
class(x)
## [1] "numeric"
v1 <- i$Sepal.Length
class(v1)
## [1] "numeric"
i[c(1, 3), c(2, 3)]
## Sepal.Width Petal.Length
## 1 3.5 1.4
## 3 3.2 1.3
# Dataframe de ejemplo
datos <- data.frame(
Nombre = c("Juan", "María", "Pedro", "Ana"),
Edad = c(23, 25, 22, 21)
)
datos
## Nombre Edad
## 1 Juan 23
## 2 María 25
## 3 Pedro 22
## 4 Ana 21
subset(datos, Edad > 23)
## Nombre Edad
## 2 María 25
subset(datos, Edad < 23)
## Nombre Edad
## 3 Pedro 22
## 4 Ana 21
subset(datos, Edad > 23 & Nombre == "María")
## Nombre Edad
## 2 María 25
subset(datos, Nombre == "María" | Nombre == "Pedro")
## Nombre Edad
## 2 María 25
## 3 Pedro 22
#Posiciones
dim(iris)
## [1] 150 5
which(iris[,5] == "setosa")
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
## [26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
i
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## 11 5.4 3.7 1.5 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 14 4.3 3.0 1.1 0.1 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 23 4.6 3.6 1.0 0.2 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 25 4.8 3.4 1.9 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 28 5.2 3.5 1.5 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 34 5.5 4.2 1.4 0.2 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 49 5.3 3.7 1.5 0.2 setosa
## 50 5.0 3.3 1.4 0.2 setosa
## 51 7.0 3.2 4.7 1.4 versicolor
## 52 6.4 3.2 4.5 1.5 versicolor
## 53 6.9 3.1 4.9 1.5 versicolor
## 54 5.5 2.3 4.0 1.3 versicolor
## 55 6.5 2.8 4.6 1.5 versicolor
## 56 5.7 2.8 4.5 1.3 versicolor
## 57 6.3 3.3 4.7 1.6 versicolor
## 58 4.9 2.4 3.3 1.0 versicolor
## 59 6.6 2.9 4.6 1.3 versicolor
## 60 5.2 2.7 3.9 1.4 versicolor
## 61 5.0 2.0 3.5 1.0 versicolor
## 62 5.9 3.0 4.2 1.5 versicolor
## 63 6.0 2.2 4.0 1.0 versicolor
## 64 6.1 2.9 4.7 1.4 versicolor
## 65 5.6 2.9 3.6 1.3 versicolor
## 66 6.7 3.1 4.4 1.4 versicolor
## 67 5.6 3.0 4.5 1.5 versicolor
## 68 5.8 2.7 4.1 1.0 versicolor
## 69 6.2 2.2 4.5 1.5 versicolor
## 70 5.6 2.5 3.9 1.1 versicolor
## 71 5.9 3.2 4.8 1.8 versicolor
## 72 6.1 2.8 4.0 1.3 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 74 6.1 2.8 4.7 1.2 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 77 6.8 2.8 4.8 1.4 versicolor
## 78 6.7 3.0 5.0 1.7 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 80 5.7 2.6 3.5 1.0 versicolor
## 81 5.5 2.4 3.8 1.1 versicolor
## 82 5.5 2.4 3.7 1.0 versicolor
## 83 5.8 2.7 3.9 1.2 versicolor
## 84 6.0 2.7 5.1 1.6 versicolor
## 85 5.4 3.0 4.5 1.5 versicolor
## 86 6.0 3.4 4.5 1.6 versicolor
## 87 6.7 3.1 4.7 1.5 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 89 5.6 3.0 4.1 1.3 versicolor
## 90 5.5 2.5 4.0 1.3 versicolor
## 91 5.5 2.6 4.4 1.2 versicolor
## 92 6.1 3.0 4.6 1.4 versicolor
## 93 5.8 2.6 4.0 1.2 versicolor
## 94 5.0 2.3 3.3 1.0 versicolor
## 95 5.6 2.7 4.2 1.3 versicolor
## 96 5.7 3.0 4.2 1.2 versicolor
## 97 5.7 2.9 4.2 1.3 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
## 99 5.1 2.5 3.0 1.1 versicolor
## 100 5.7 2.8 4.1 1.3 versicolor
## 101 6.3 3.3 6.0 2.5 virginica
## 102 5.8 2.7 5.1 1.9 virginica
## 103 7.1 3.0 5.9 2.1 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 105 6.5 3.0 5.8 2.2 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 107 4.9 2.5 4.5 1.7 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 109 6.7 2.5 5.8 1.8 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 112 6.4 2.7 5.3 1.9 virginica
## 113 6.8 3.0 5.5 2.1 virginica
## 114 5.7 2.5 5.0 2.0 virginica
## 115 5.8 2.8 5.1 2.4 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 120 6.0 2.2 5.0 1.5 virginica
## 121 6.9 3.2 5.7 2.3 virginica
## 122 5.6 2.8 4.9 2.0 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 127 6.2 2.8 4.8 1.8 virginica
## 128 6.1 3.0 4.9 1.8 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 130 7.2 3.0 5.8 1.6 virginica
## 131 7.4 2.8 6.1 1.9 virginica
## 132 7.9 3.8 6.4 2.0 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 134 6.3 2.8 5.1 1.5 virginica
## 135 6.1 2.6 5.6 1.4 virginica
## 136 7.7 3.0 6.1 2.3 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
t <- subset(i, Species == "setosa" | Species == "virginica")
t.test( Sepal.Length ~ Species,data = t)
##
## Welch Two Sample t-test
##
## data: Sepal.Length by Species
## t = -15.386, df = 76.516, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group setosa and group virginica is not equal to 0
## 95 percent confidence interval:
## -1.78676 -1.37724
## sample estimates:
## mean in group setosa mean in group virginica
## 5.006 6.588
mínimo min() máximo max() rango range() media mean() desviación estándar sd() mediana median() varianza var() rango intercuartílico IQR()
summary(i$Sepal.Length)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4.300 5.100 5.800 5.843 6.400 7.900
summary(i)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
## 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
## Median :5.800 Median :3.000 Median :4.350 Median :1.300
## Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
## 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
## Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
## Species
## setosa :50
## versicolor:50
## virginica :50
##
##
##
str(i)
## 'data.frame': 150 obs. of 5 variables:
## $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
## $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
## $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
## $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
## $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
#Usar un paquete
library("psych") #install.packages(psych)
describe(i)
## vars n mean sd median trimmed mad min max range skew
## Sepal.Length 1 150 5.84 0.83 5.80 5.81 1.04 4.3 7.9 3.6 0.31
## Sepal.Width 2 150 3.06 0.44 3.00 3.04 0.44 2.0 4.4 2.4 0.31
## Petal.Length 3 150 3.76 1.77 4.35 3.76 1.85 1.0 6.9 5.9 -0.27
## Petal.Width 4 150 1.20 0.76 1.30 1.18 1.04 0.1 2.5 2.4 -0.10
## Species* 5 150 2.00 0.82 2.00 2.00 1.48 1.0 3.0 2.0 0.00
## kurtosis se
## Sepal.Length -0.61 0.07
## Sepal.Width 0.14 0.04
## Petal.Length -1.42 0.14
## Petal.Width -1.36 0.06
## Species* -1.52 0.07
setwd("/home/gerald/Documentos/maestria/2do_ciclo/graficos_R/repaso")
getwd()
## [1] "/home/gerald/Documentos/maestria/2do_ciclo/graficos_R/repaso"
p <- read.csv("penguins.csv")
str(p)
## 'data.frame': 344 obs. of 8 variables:
## $ species : chr "Adelie" "Adelie" "Adelie" "Adelie" ...
## $ island : chr "Torgersen" "Torgersen" "Torgersen" "Torgersen" ...
## $ bill_length_mm : num 39.1 39.5 40.3 NA 36.7 39.3 38.9 39.2 34.1 42 ...
## $ bill_depth_mm : num 18.7 17.4 18 NA 19.3 20.6 17.8 19.6 18.1 20.2 ...
## $ flipper_length_mm: int 181 186 195 NA 193 190 181 195 193 190 ...
## $ body_mass_g : int 3750 3800 3250 NA 3450 3650 3625 4675 3475 4250 ...
## $ sex : chr "male" "female" "female" NA ...
## $ year : int 2007 2007 2007 2007 2007 2007 2007 2007 2007 2007 ...
colores <- c("black","pink","pink","pink","black","black")
colores <- as.factor(colores)
class(colores)
## [1] "factor"
levels(colores)
## [1] "black" "pink"
# Reordenar los niveles a "pink" "black"
colores <- factor(colores, levels = c("pink", "black"))
# Ver los nuevos niveles
levels(colores)
## [1] "pink" "black"
tab <- table(colores)
100*prop.table(tab)
## colores
## pink black
## 50 50
colnames(p)
## [1] "species" "island" "bill_length_mm"
## [4] "bill_depth_mm" "flipper_length_mm" "body_mass_g"
## [7] "sex" "year"
p$species <- factor(p$species)
str(p)
## 'data.frame': 344 obs. of 8 variables:
## $ species : Factor w/ 3 levels "Adelie","Chinstrap",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ island : chr "Torgersen" "Torgersen" "Torgersen" "Torgersen" ...
## $ bill_length_mm : num 39.1 39.5 40.3 NA 36.7 39.3 38.9 39.2 34.1 42 ...
## $ bill_depth_mm : num 18.7 17.4 18 NA 19.3 20.6 17.8 19.6 18.1 20.2 ...
## $ flipper_length_mm: int 181 186 195 NA 193 190 181 195 193 190 ...
## $ body_mass_g : int 3750 3800 3250 NA 3450 3650 3625 4675 3475 4250 ...
## $ sex : chr "male" "female" "female" NA ...
## $ year : int 2007 2007 2007 2007 2007 2007 2007 2007 2007 2007 ...
#Bucle para convertir cada uno de las columnas character en #factor
for(col in names(p)) {
if(is.character(p[[col]])) {
p[[col]] <- factor(p[[col]])
}
}
str(p)
## 'data.frame': 344 obs. of 8 variables:
## $ species : Factor w/ 3 levels "Adelie","Chinstrap",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ island : Factor w/ 3 levels "Biscoe","Dream",..: 3 3 3 3 3 3 3 3 3 3 ...
## $ bill_length_mm : num 39.1 39.5 40.3 NA 36.7 39.3 38.9 39.2 34.1 42 ...
## $ bill_depth_mm : num 18.7 17.4 18 NA 19.3 20.6 17.8 19.6 18.1 20.2 ...
## $ flipper_length_mm: int 181 186 195 NA 193 190 181 195 193 190 ...
## $ body_mass_g : int 3750 3800 3250 NA 3450 3650 3625 4675 3475 4250 ...
## $ sex : Factor w/ 2 levels "female","male": 2 1 1 NA 1 2 1 2 NA NA ...
## $ year : int 2007 2007 2007 2007 2007 2007 2007 2007 2007 2007 ...
#Agregando el argumento na.rm = TRUE
sum(p$flipper_length_mm, na.rm = TRUE)
## [1] 68713
mean(p$flipper_length_mm, na.rm = TRUE)
## [1] 200.9152
##Eliminando todas las filas que tengan NA
p_clean <- na.omit(p)
mean(p_clean$flipper_length_mm)
## [1] 200.967
#Compara este resultado con el mean(p$flipper_length_mm, na.rm = #TRUE) y explica por que son diferentes
p$flipper_length_mm
## [1] 181 186 195 NA 193 190 181 195 193 190 186 180 182 191 198 185 195 197
## [19] 184 194 174 180 189 185 180 187 183 187 172 180 178 178 188 184 195 196
## [37] 190 180 181 184 182 195 186 196 185 190 182 179 190 191 186 188 190 200
## [55] 187 191 186 193 181 194 185 195 185 192 184 192 195 188 190 198 190 190
## [73] 196 197 190 195 191 184 187 195 189 196 187 193 191 194 190 189 189 190
## [91] 202 205 185 186 187 208 190 196 178 192 192 203 183 190 193 184 199 190
## [109] 181 197 198 191 193 197 191 196 188 199 189 189 187 198 176 202 186 199
## [127] 191 195 191 210 190 197 193 199 187 190 191 200 185 193 193 187 188 190
## [145] 192 185 190 184 195 193 187 201 211 230 210 218 215 210 211 219 209 215
## [163] 214 216 214 213 210 217 210 221 209 222 218 215 213 215 215 215 216 215
## [181] 210 220 222 209 207 230 220 220 213 219 208 208 208 225 210 216 222 217
## [199] 210 225 213 215 210 220 210 225 217 220 208 220 208 224 208 221 214 231
## [217] 219 230 214 229 220 223 216 221 221 217 216 230 209 220 215 223 212 221
## [235] 212 224 212 228 218 218 212 230 218 228 212 224 214 226 216 222 203 225
## [253] 219 228 215 228 216 215 210 219 208 209 216 229 213 230 217 230 217 222
## [271] 214 NA 215 222 212 213 192 196 193 188 197 198 178 197 195 198 193 194
## [289] 185 201 190 201 197 181 190 195 181 191 187 193 195 197 200 200 191 205
## [307] 187 201 187 203 195 199 195 210 192 205 210 187 196 196 196 201 190 212
## [325] 187 198 199 201 193 203 187 197 191 203 202 194 206 189 195 207 202 193
## [343] 210 198
p_clean$flipper_length_mm
## [1] 181 186 195 193 190 181 195 182 191 198 185 195 197 184 194 174 180 189
## [19] 185 180 187 183 187 172 180 178 178 188 184 195 196 190 180 181 184 182
## [37] 195 186 196 185 190 182 190 191 186 188 190 200 187 191 186 193 181 194
## [55] 185 195 185 192 184 192 195 188 190 198 190 190 196 197 190 195 191 184
## [73] 187 195 189 196 187 193 191 194 190 189 189 190 202 205 185 186 187 208
## [91] 190 196 178 192 192 203 183 190 193 184 199 190 181 197 198 191 193 197
## [109] 191 196 188 199 189 189 187 198 176 202 186 199 191 195 191 210 190 197
## [127] 193 199 187 190 191 200 185 193 193 187 188 190 192 185 190 184 195 193
## [145] 187 201 211 230 210 218 215 210 211 219 209 215 214 216 214 213 210 217
## [163] 210 221 209 222 218 215 213 215 215 215 215 210 220 222 209 207 230 220
## [181] 220 213 219 208 208 208 225 210 216 222 217 210 225 213 215 210 220 210
## [199] 225 217 220 208 220 208 224 208 221 214 231 219 230 229 220 223 216 221
## [217] 221 217 216 230 209 220 215 223 212 221 212 224 212 228 218 218 212 230
## [235] 218 228 212 224 214 226 216 222 203 225 219 228 215 228 215 210 219 208
## [253] 209 216 229 213 230 217 230 222 214 215 222 212 213 192 196 193 188 197
## [271] 198 178 197 195 198 193 194 185 201 190 201 197 181 190 195 181 191 187
## [289] 193 195 197 200 200 191 205 187 201 187 203 195 199 195 210 192 205 210
## [307] 187 196 196 196 201 190 212 187 198 199 201 193 203 187 197 191 203 202
## [325] 194 206 189 195 207 202 193 210 198
Las funciones apply(), lapply(), sapply(), tapply(), vapply(), mapply(), y rapply() son parte de la familia de funciones “apply” en R. Estas son extremadamente útiles para evitar bucles explícitos y realizar operaciones más eficientemente. Vamos a explorar cada una de ellas utilizando el conjunto de datos iris.
Estructura: X: Matriz o dataframe. MARGIN: 1 para filas, 2 para columnas. FUN: La función que deseas aplicar.
#apply()
#apply(X, MARGIN, FUN)
apply(iris[, 1:4], 2, mean)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 5.843333 3.057333 3.758000 1.199333
#lapply() #Te da una lista
#lapply(X, FUN)
lapply(iris[, 1:4], range)
## $Sepal.Length
## [1] 4.3 7.9
##
## $Sepal.Width
## [1] 2.0 4.4
##
## $Petal.Length
## [1] 1.0 6.9
##
## $Petal.Width
## [1] 0.1 2.5
#sapply() # Te da un vector o matriz
#sapply(X, FUN)
sapply(iris[, 1:4], range)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## [1,] 4.3 2.0 1.0 0.1
## [2,] 7.9 4.4 6.9 2.5
#tapply() #aplica una función a subgrupos definidos por una #variable categórica
#tapply(X, INDEX, FUN)
tapply(iris$Sepal.Length, iris$Species, summary)
## $setosa
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4.300 4.800 5.000 5.006 5.200 5.800
##
## $versicolor
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4.900 5.600 5.900 5.936 6.300 7.000
##
## $virginica
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4.900 6.225 6.500 6.588 6.900 7.900
###Para graficar una curva normal
bd <- p$bill_length_mm
hist(bd)
describe(bd, na.rm = TRUE)
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 342 43.92 5.46 44.45 43.91 7.04 32.1 59.6 27.5 0.05 -0.89 0.3
curve(dnorm(x, mean = 43.92193, sd = 5.46),xlim = c(0,80))
help(dnorm)
#Probab. de encontrar q menores a 0
pnorm(q = 0, mean = 0, sd = 1)
## [1] 0.5
#Probab. de encontrar q menores a 2
pnorm(q = 2, mean = 0, sd = 1)
## [1] 0.9772499
#Probab. de encontrar q mayores a 2
1 - pnorm(q = 2, mean = 0, sd = 1)
## [1] 0.02275013
pnorm(q = 2, mean = 0, sd = 1, lower.tail = FALSE)
## [1] 0.02275013
#Reto: Calcule prob. de tener q entre 5.5 y 6.5
describe(iris[[1]])
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 150 5.84 0.83 5.8 5.81 1.04 4.3 7.9 3.6 0.31 -0.61 0.07
pnorm(q = 6.5, mean = 5.84, sd = 0.83) - pnorm(q = 5.5, mean = 5.84, sd = 0.83)
## [1] 0.4457103
#Con media en 5
curve(dt(x - 5, df = 4), xlim = c(0, 10),ylab = "Densidad de probabilidad", xlab = "cuantiles")
title(main = "Curva T, df = 4")
## Calcula la prob. de encontrar cuantiles menores a 2 con df=5
pt(q = -2, df = 5)
## [1] 0.05096974
curve(dchisq(x, df = 4), xlim = c(0, 20),ylab = "Densidad de probabilidad", xlab = "cuantiles")
title(main = "Curva chiˆ2, df = 4")
### Para calcular probabilidad de encontrar ciertos cuantiles chi^2
## Calcula la prob. de encontrar cuantiles mayores a 7 con df=4
1 - pchisq(q = 7, df = 4)
## [1] 0.1358882
O3 <- airquality$Ozone
#Graficar el histograma de ozone
hist(O3, freq = FALSE, xlim = c(-60, 200), main = "")
title("Histograma de Ozone")
#Añadir curva normal con media en la mism posición
curve(dnorm(x, mean = mean(O3, na.rm = TRUE),
sd = sd(O3, na.rm = TRUE)), add = TRUE)
qqnorm(O3)
qqline(O3)
y <- rnorm(50, mean = .5, sd = .95)