carloslesmes — Sep 10, 2012, 3:48 PM
# dataframes, listas, matrices y arreglos
x <- c(1:5)
y <- letters[22:26]
z <- c(1:6)
is.vector(y) # pregunta si y es vector
[1] TRUE
is.vector(z) # idem
[1] TRUE
w <- data.frame(x,y) # crea dataframe
w
x y
1 1 v
2 2 w
3 3 x
4 4 y
5 5 z
summary(w) # resumen
x y
Min. :1 v:1
1st Qu.:2 w:1
Median :3 x:1
Mean :3 y:1
3rd Qu.:4 z:1
Max. :5
w[1,1] # accesa datos de w
[1] 1
w[3,2] # idem
[1] x
Levels: v w x y z
a <- c(1:10)
b <- c(2:11)
c <- c(3:12)
d <- data.frame(a,b,c) # crea dataframe
d
a b c
1 1 2 3
2 2 3 4
3 3 4 5
4 4 5 6
5 5 6 7
6 6 7 8
7 7 8 9
8 8 9 10
9 9 10 11
10 10 11 12
str(d) # estructura de d
'data.frame': 10 obs. of 3 variables:
$ a: int 1 2 3 4 5 6 7 8 9 10
$ b: int 2 3 4 5 6 7 8 9 10 11
$ c: int 3 4 5 6 7 8 9 10 11 12
d$a # vector a de d
[1] 1 2 3 4 5 6 7 8 9 10
d$a[3] # accesa datos de a
[1] 3
is.vector(d$a) # pregunta si es vector
[1] TRUE
d[3:5,1:2]
a b
3 3 4
4 4 5
5 5 6
d[4:6,c(1,3)]
a c
4 4 6
5 5 7
6 6 8
is.data.frame(d)
[1] TRUE
is.list(d)
[1] TRUE
summary(d)
a b c
Min. : 1.00 Min. : 2.00 Min. : 3.00
1st Qu.: 3.25 1st Qu.: 4.25 1st Qu.: 5.25
Median : 5.50 Median : 6.50 Median : 7.50
Mean : 5.50 Mean : 6.50 Mean : 7.50
3rd Qu.: 7.75 3rd Qu.: 8.75 3rd Qu.: 9.75
Max. :10.00 Max. :11.00 Max. :12.00
is.array(d) # pregunta si es arreglo
[1] FALSE
is.vector(d) # pregunta si es vector
[1] FALSE
is.matrix(d) # pregunta si es matriz
[1] FALSE
(s <-apply(d,1,sum)) # suma las filas de d
[1] 6 9 12 15 18 21 24 27 30 33
(m <-apply(d,2,mean)) # saca la media de las columnas de d
a b c
5.5 6.5 7.5
boxplot(d)
l <- list(x,y,z) # crea lista
l
[[1]]
[1] 1 2 3 4 5
[[2]]
[1] "v" "w" "x" "y" "z"
[[3]]
[1] 1 2 3 4 5 6
is.list(l) # pregunta si es lista
[1] TRUE
l[[1]] # accesa la lista
[1] 1 2 3 4 5
l[[2]] # idem
[1] "v" "w" "x" "y" "z"
l[[3]] # idem
[1] 1 2 3 4 5 6
m1 <- matrix(1:21,ncol=3) # crea matriz
m1
[,1] [,2] [,3]
[1,] 1 8 15
[2,] 2 9 16
[3,] 3 10 17
[4,] 4 11 18
[5,] 5 12 19
[6,] 6 13 20
[7,] 7 14 21
dim(m1) # dimension de m1
[1] 7 3
is.array(m1) # pregunta si es arreglo
[1] TRUE
m2 <- matrix(c(1,3,5,6,7,9),nrow=3)
m2
[,1] [,2]
[1,] 1 6
[2,] 3 7
[3,] 5 9
m3 <- m1%*%m2 # multiplicacion de matrices
m3
[,1] [,2]
[1,] 100 197
[2,] 109 219
[3,] 118 241
[4,] 127 263
[5,] 136 285
[6,] 145 307
[7,] 154 329
m4 <- matrix(4:1,nrow=2)
det(m4) # determinante
[1] -2
diag(m4) # diagonal
[1] 4 1
solve(m4) # inversa
[,1] [,2]
[1,] -0.5 1
[2,] 1.5 -2
m5 <- m4 + m4 # suma
m5
[,1] [,2]
[1,] 8 4
[2,] 6 2
m6 <- matrix(letters[1:6],nrow=3)
m6
[,1] [,2]
[1,] "a" "d"
[2,] "b" "e"
[3,] "c" "f"
m7 <- matrix(letters[1:6],nrow=3,byrow=TRUE)
m7
[,1] [,2]
[1,] "a" "b"
[2,] "c" "d"
[3,] "e" "f"
t(m7) # transpuesta
[,1] [,2] [,3]
[1,] "a" "c" "e"
[2,] "b" "d" "f"
a1 <- array(letters[1:24],dim=c(3,4,2))
a1
, , 1
[,1] [,2] [,3] [,4]
[1,] "a" "d" "g" "j"
[2,] "b" "e" "h" "k"
[3,] "c" "f" "i" "l"
, , 2
[,1] [,2] [,3] [,4]
[1,] "m" "p" "s" "v"
[2,] "n" "q" "t" "w"
[3,] "o" "r" "u" "x"
sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
locale:
[1] C/en_US.UTF-8/C/C/C/C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] knitr_0.8
loaded via a namespace (and not attached):
[1] digest_0.5.2 evaluate_0.4.2 formatR_0.6 plyr_1.7.1
[5] stringr_0.6.1 tools_2.15.1