Não foi possível enviar o arquivo. Será algum problema com as permissões?
Diferenças

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
Próxima revisão Ambos lados da revisão seguinte
disciplinas:ce223:comandos2008 [2008/03/13 23:56]
paulojus
disciplinas:ce223:comandos2008 [2008/03/19 15:08]
ehlers
Linha 270: Linha 270:
  
 Digitação e conversão de uma tabela de tripla entrada (dada no quadro durante a aula) em um objeto do tipo ''​array''​ Digitação e conversão de uma tabela de tripla entrada (dada no quadro durante a aula) em um objeto do tipo ''​array''​
-|            ​ ​PR ​                  ^^   SC                ​^^ ​  RS                ​^^ +|            ​ ​PR ​                  ||   SC                 ||   RS                ​|| 
-|            ​Masculino ​Feminino  ​Masculino ​Feminino ​Masculino ​Feminino ​^ +|            ​Masculino ​Feminino  ​Masculino ​Feminino ​ ​| ​Masculino ​Feminino ​| 
-|Não Fuma    ^  45       ​^ ​ 16       ​^ ​  ​21 ​     ^  33       ​^ ​ 40      ^   ​45 ​    ^ +|Não Fuma    ^  45       ​^ ​ 16       ​^ ​  ​21 ​     ^  33       ​^ ​ 40       ​^   ​45 ​    ^ 
-|Fuma pouco  ^  28       ​^ ​ 22       ​^ ​  ​34 ​     ^  21       ​^ ​ 50      ^   ​37 ​    ^ +|Fuma pouco  ^  28       ​^ ​ 22       ​^ ​  ​34 ​     ^  21       ​^ ​ 50       ​^   ​37 ​    ^ 
-|Fuma muito  ^  37       ​^ ​ 15       ​^ ​  ​56 ​     ^  30       ​^ ​ 85      ^   ​29 ​    ^+|Fuma muito  ^  37       ​^ ​ 15       ​^ ​  ​56 ​     ^  30       ​^ ​ 85       ​^   ​29 ​    ^
  
 Comentários sobre ordem de entrada dos dados, cliclagem das variáveis e definição das dimensões do array<​code R> Comentários sobre ordem de entrada dos dados, cliclagem das variáveis e definição das dimensões do array<​code R>
Linha 300: Linha 300:
 Af <- array(freqs,​ dim=c(3,​2,​3)) Af <- array(freqs,​ dim=c(3,​2,​3))
 Af Af
 +</​code>​
 +
 +==== Semana 4 ====
 +=== 17/03/2008 ===
 +<code R>
 +freqs = scan(file='​http://​leg.ufpr.br/​~ehlers/​CE223/​fumo.dat'​)
 +
 +array(freqs,​ dim=c(3,​2,​3))
 +
 +nomes = list(c('​PR','​SC','​RS'​),​ c('​M','​F'​),​ c('nao fuma','​fuma pouco','​fuma muito'​))
 +
 +hf = array(freqs,​ dim=c(3,​2,​3),​ dimnames=nomes)
 +
 +hf
 +
 +m1 <- matrix(1:​12,​ ncol = 3)
 +m1
 +
 +dimnames(m1)
 +
 +dimnames(m1) <- list(c("​L1",​ "​L2",​ "​L3",​ "​L4"​),​ c("​C1",​ "​C2",​ "​C3"​))
 +
 +m1
 +
 +m2 <- cbind(1:5, 6:10)
 +m2
 +
 +m3 <- cbind(1:5, 6)
 +m3
 +
 +margin.table(m1,​ margin = 1)
 +
 +apply(m1, 1, sum)
 +
 +rowSums(m1)
 +
 +margin.table(m1,​ margin = 2)
 +
 +apply(m1, 2, sum)
 +
 +colSums(m1)
 +
 +#operacoes com matrizes
 +
 +m4 <- matrix(1:6, nc = 3)
 +m5 <- matrix(10 * (1:6), nc = 3)
 +m4
 +
 +m5
 +
 +m4 + m5
 +
 +m4 * m5
 +
 +m5 - m4
 +
 +m5/m4
 +
 +m4 %*% m5
 +
 +t(m4)
 +
 +m6 = t(m4)%*% m5
 +
 +solve(m6)
 +
 +m6[3,3]=20
 +
 +solve(m6)
 +
 +mat <- matrix(c(1, 5, 2, 3, -2, 1, -1, 1, -1), nc = 3)
 +
 +vec <- c(10, 15, 7)
 +
 +solve(mat, vec)
 +</​code>​
 +
 +<code R>
 +x <- c(0, 1, 2, 3, 4, 5 ,6, 7, 8, 9, 10)
 +x
 +x <- 0:10
 +x
 +x <- seq(0,10, by=1)
 +x <- scan()
 +1: 0
 +2: 1
 +...
 +10: 9
 +11: 10
 +12: 
 +</​code>​
 +
 +Extendendo as possibilidades
 +<code R>
 +seq(0,1, by=0.1)
 +(0:10)/10
 +
 +2*(0:10)
 +seq(0,​20,​by=2)
 +
 +10:0
 +seq(10,0, by=-1)
 +</​code>​
 +
 +=== 19/03/2008 ===
 +Data frames
 +<code R>
 +d1 = data.frame(x=1:​10,​y=c(51,​54,​61,​67,​68,​75,​77,​75,​80,​82))
 +
 +d1
 +
 +      x  y
 +  1   1 51
 +  2   2 54
 +  3   3 61
 +  4   4 67
 +  5   5 68
 +  6   6 75
 +  7   7 77
 +  8   8 75
 +  9   9 80
 +  10 10 82
 +
 +names(d1)
 +
 +d1$x
 +d1$y
 +
 +d1[,1]
 +d1[,2]
 +
 +plot(d1)
 +
 +plot(d1$x,​d1$y)
 +
 +d2 = data.frame(Y = c(rnorm(5,​mean=10,​sd=2),​ rnorm(5,​16,​2),​ rnorm(5,​14,​2)))
 +
 +gl(3, 5)
 + [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
 +Levels: 1 2 3
 +
 +d2$lev = gl(3, 5)
 +
 +d2
 +
 +is.factor(d2$lev)
 +
 +# Aplicando uma funcao a um Data Frame separando por fatores
 +
 +by(d2$Y, d2$lev, summary)
 +
 +# Criando um Data Frame a partir de todas as combinacoes de 2 fatores.
 +
 +d3 = expand.grid(1:​3,​ 4:5)
 +d3
 +
 +is.data.frame(d3)
 +
 +# Adicionando colunas
 +
 +d4 = data.frame(peso=rnorm(15,​65,​5),​altura=rnorm(15,​160,​10))
 +d4
 +
 +d4=cbind(d4,​sexo=c(rep('​M',​10),​rep('​F',​5)))
 +d4
 +
 +# Toda coluna que não seja composta exclusivamente de números é definida como um fator.
 +
 +is.factor(d4$sexo)
 +[1] TRUE
 +
 +letters
 +
 +LETTERS
 +
 +d4=cbind(d4,​nome=letters[1:​15])
 +
 +is.factor(d4$nome)
 +[1] TRUE
 +
 +d4$nome= as.character(d4$nome)
 +
 +d4
 +
 +dim(d4)
 +
 +names(d4)
 +
 +dimnames(d4)
 +
 +rownames(d4)
 +
 +colnames(d4)
 +
 +d4[d4$sexo=='​M',​1:​2]
 +
 +d4[d4$sexo=='​F',​4]
 +
 +by(d4[,​1:​2],​d4$sexo,​function(x)x)
 +
 +by(d4[,​4],​d4$sexo,​function(x)as.character(x))
 +</​code>​
 +
 +Listas
 +<code R>
 +#Listas sao estruturas genericas e flexiveis que permitem armazenar
 +#diversos formatos em um unico objeto. ​
 +
 +lis1 <- list(A = 1:10, B = "CE 223", C = matrix(1:​9,​ncol = 3))
 +lis1
 +
 +$A
 +[1]  1  2  3  4  5  6  7  8  9 10
 +
 +$B
 +[1] "CE 223"
 +  ​
 +$C
 +     [,1] [,2] [,3]
 +[1,]    1    4    7
 +[2,]    2    5    8
 +[3,]    3    6    9
 +
 +#Varias funcoes do R retornam listas
 +
 +d1
 +
 +lis2 = lm (y ~ x, data=d1)
 +
 +lis2
 +
 +is.list(lis2)
 +
 +class(lis2)
 +
 +summary(lis2)
 +
 +anova(lis2)
 +
 +names(lis2)
 +
 +lis2$pred
 +
 +lis2$residuals
 +
 +par(mfrow=c(2,​2))
 +
 +plot(lis2)
 +
 +#​Selecionando elementos de uma lista
 +
 +lis1$A
 +
 +lis2$coeff
 +
 +lis1[3]
 +
 +lis1[[3]]
 +
 </​code>​ </​code>​
  

QR Code
QR Code disciplinas:ce223:comandos2008 (generated for current page)