clase5.R

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) 

plot of chunk unnamed-chunk-1

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