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
cursos:mct:exemplo5 [2011/05/09 10:59]
paulojus
cursos:mct:exemplo5 [2011/05/27 19:00] (atual)
paulojus
Linha 1: Linha 1:
 ====== Miscelânia de tópicos ====== ====== Miscelânia de tópicos ======
 +
 +<fs medium>​Ordenação</​fs>​
 +<code R>
 +x <- rpois(10, lam=10)
 +x
 +sort(x)
 +order(x)
 +x[order(x)]
 +x[rev(order(x))]
 +args(order)
 +order(x, decreasing=T)
 +</​code>​
 +
  
 <fs medium>​Representação e Manipulação de datas</​fs>​ <fs medium>​Representação e Manipulação de datas</​fs>​
Linha 55: Linha 68:
 </​code>​ </​code>​
  
 +<fs medium>​Precisão numérica/​ponto flutuante</​fs>​
 +
 +Encontrando dados replicados, e não replicados
 +<code R>
 +x <- rpois(25, lam=5)
 +x
 +unique(x)
 +
 +duplicated(x)
 +x[!duplicated(x)]
 +x[duplicated(x)]
 +</​code>​
 +
 +Representação de números e ponto flutuante.\\
 +''​isTRUE''​ deve se usado para testar condições dentro de funções.
 +<code R>
 +.1 == .3/3
 +all.equal(.1,​ .3/3)
 +isTRUE(all.equal(0.1,​ .3/3))
 +identical(.1,​ .3/3)
 +</​code>​
 +
 +Mais coisas que deveriam ser iguais... mas não exatamente são ...
 +<code R>
 +seq(0, 1, by=0.1) == 0.3
 +
 +x <- c(.3, 0.4 - 0.1, 0.5 - 0.2, 0.6 - 0.3, 0.7 - 0.4)
 +x
 +unique(x)
 +</​code>​
 +
 +Um exemplo com uma função para resolver equação do 2o grau:
 +<code R>
 +eq2g <- function(a, b, c){
 + delta <- b^2 - 4 * a * c
 + if(is.complex(delta) || all(delta > 0))
 +    delta <- sqrt(delta)
 + else
 +    delta <- sqrt(as.complex(delta))
 + return(cbind(-b + c(-1,1) * delta)/​(2*a))
 +}
 +
 +print(eq2g(1,​ -5, 6), dig=16)
 +
 +eq2g(1, c(-5, 1), 6)
 +
 +eq2g(1, -5, 6) - c(2, 3)
 +
 +eq2g(1/3, -5/3, 6/3)
 +
 +print(eq2g(1/​3,​ -5/3, 6/3), dig=16)
 +
 +eq2g(1/3, -5/3, 6/3) - c(2, 3)
 +</​code>​
 +
 +
 +<fs medium>​Objetos crescentes, substituição der valores e criação direta de vetores</​fs>​
 +
 +Os tempos de execução podem ser substancialmetne diferentes!!
 +<code R>
 +n<- 50000
 +
 +system.time({
 +vec <- numeric(0)
 +for(i in 1:n) vec <- c(vec, i)
 +})
 +
 +system.time({
 +vec <- numeric(n)
 +for(i in 1:n) vec[i] <- i
 +})
 +
 +system.time({
 +vec <- 1:n
 +})
 +</​code>​
 +
 +Onderm de operações
 +<code R>
 +x <- rnorm(10000,​ m=100, sd=10)
 +
 +system.time({
 + lsum <- 0
 + for(i in 1:​length(x)){
 +   lsum <- lsum + log(x[i])
 +  }
 + })
 +
 +system.time(lsum <- sum(log(x)))
 +
 +c(log(12.3),​ log(16.7), log(18.3))
 +log(c(12.3, 16.7, 18.3))
 +</​code>​

QR Code
QR Code cursos:mct:exemplo5 (generated for current page)