Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
robertopucp
GitHub Repository: robertopucp/1eco35_2022_2
Path: blob/main/Trabajo_grupal/WG1/GRUPO_3_R.R
2714 views
1
# EJERCICIO 1
2
3
myfunction <- function(x) {
4
if (0 <= x & x <= 100) return(x^(1/2))
5
else if (100 < x & x <= 300) return(x-5)
6
else if (x > 300) return(50)
7
}
8
9
myfunction(400)
10
11
x <- sample(0:500,20,replace=F)
12
for (i in 1:20){
13
x[i] = myfunction(x[i])
14
}
15
x
16
17
18
# EJERCICIO 2
19
20
set.seed(45)
21
xvector <- c(sample(100,replace=F))
22
xmatrix = matrix(as.integer(sample(10000,replace=F)),nrow = 100,ncol = 50)
23
24
escalar <- function(x,y) {
25
if (is.vector(x)) return((x-min(x))/(max(x)-min(x)))
26
else if (is.matrix(x)) return((x-min(x[,y]))/(max(x[,y])-min(x[,y])))
27
else return("Base de datos incorrecta")
28
}
29
30
escalar(xvector)
31
escalar(xmatrix,50)
32
33
34
35
# EJERCICIO 3
36
# V=5, POBLACION= 10 000
37
38
#install.packages("dplyr")
39
library(dplyr)
40
41
# Total de la población
42
pop <- 100000
43
44
# Generar 5 Variables: runif(tamaño, min,max)
45
a = 1; b = 99 # Se toma a y b como los mínimos y máximos
46
V1 <- as.data.frame(runif(pop, a, b))
47
V2 <- as.data.frame(runif(pop, a, b))
48
V3 <- as.data.frame(runif(pop, a, b))
49
V4 <- as.data.frame(runif(pop, a, b))
50
V5 <- as.data.frame(runif(pop, a, b))
51
52
# Tamaños de muestra:
53
muestras <- list(10, 50, 80, 120, 200, 500, 800, 100, 5000)
54
55
# Organizamos listas para cada coeficiente de la muestra:
56
Big = list()
57
for (variable in 1:length(muestras)) {
58
tam=muestras[[variable]] # Tamaño de la muestra
59
data=sample(data.frame(cbind(V1,V2,V3,V4,V5)),
60
size=tam, replace = TRUE)%>%
61
`colnames<-`(c("V1","V2","V3","V4","V5"))
62
data$y=data$V1+data$V2+data$V3+data$V4+data$V5
63
64
# Corremos la regresión planteada
65
model <- lm(y ~ V1+V2+V3+V4+V5, data)
66
betas<-summary(model)$coefficient[,1]
67
df<-as.data.frame(cbind(t(betas),tam))
68
Big[[variable]]=df
69
}
70
71
# Apilamos los resultados
72
BIG_D = do.call(bind_rows, Big)
73
74
BIG_D = BIG_D[ , order(names(BIG_D))] # Ordenamos por nombres
75
rm(Big, data) # Borramos el objeto
76
77