Diferenças

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

Link para esta página de comparações

Próxima revisão
Revisão anterior
cursos:mct:exemplo5 [2011/05/06 00:44] – criada paulojuscursos:mct:exemplo5 [2011/05/27 19:00] (atual) paulojus
Linha 1: Linha 1:
 ====== Miscelânia de tópicos ====== ====== Miscelânia de tópicos ======
  
-<fs small>Um breve exemplo de operações matriciais - coeficientes de regressao(modelo) linear +<fs medium>Ordenação</fs> 
-</fs><code R> +<code R> 
-require(MASS+x <- rpois(10, lam=10
-data(hills+
-names(hills+sort(x
-X <- cbind(1, hills$dist+order(x
-y <- hills$time +x[order(x)] 
- +x[rev(order(x))
-## Há formas e formas de fazer operações... +args(order
- +order(xdecreasing=T)
-## uma forma não muito adequada: +
-solve(t(X%*% X%*% t(X%*% y +
- +
-## outra melhor: +
-solve(crossprod(X)crossprod(X, y)+
 </code> </code>
  
  
-<fs small>Representação e Manipulação de datas</fs>+<fs medium>Representação e Manipulação de datas</fs>
 <code R> <code R>
-Sys.time()+## transformando caracteres em datas 
 +dt1 <- as.Date("4/02/2011 03:24:13", "%d/%m/%Y %H:%M:%S") 
 +dt1 
 +## exibindo a data de otras formas 
 +format(dt1, "%j"   # dia do ano 
 +format(dt1, "%A"   # dia da semana 
 +format(dt1, "%c"   # referencia completa (de acordo com o locale do sistema) 
 +format(dt1, "%m"   # número do mes
  
-format(as.Date("4/02/2011 03:24:13", "%d/%m/%Y %H:%M:%S"), "%j"+## opcoes disponíveis para exibição:
-format(as.Date(Sys.time(), "%d/%m/%Y %H:%M:%S"), "%j")+
 # a A b B c d H I j m M p S U w W x X y Y z Z # a A b B c d H I j m M p S U w W x X y Y z Z
  
-x <- c("1jan1960", "2jan1960", "31mar1960", "30jul1960")+Sys.time() 
 +format(as.Date(Sys.time(), "%d/%m/%Y %H:%M:%S"), "%j"
 + 
 +## as datas podem ser fornecidas de outras maneiras... 
 +x <- c("25set1967", "28set1969", "30jan2003", "05jul2004")
 z <- strptime(x, "%d%b%Y") z <- strptime(x, "%d%b%Y")
 z z
  
 +##
 +## Ver detalhes aqui!!! 
 +##
 +## e note a confusão com a omisão do século !!!
 +x <- c("1jan90", "2jan90", "31mar90", "30jul90")
 +z <- strptime(x, "%d%b%y")
 +z
 +x <- c("25set67", "28set69", "30jan03", "05jul04")
 +z <- strptime(x, "%d%b%y")
 +z
 +
 +## concatenando datas e horarios para formar registros únicos
 dates <- c("02/27/92", "02/27/92", "01/14/92", "02/28/92", "02/01/92") dates <- c("02/27/92", "02/27/92", "01/14/92", "02/28/92", "02/01/92")
 times <- c("23:03:20", "22:29:56", "01:03:30", "18:21:03", "16:56:26") times <- c("23:03:20", "22:29:56", "01:03:30", "18:21:03", "16:56:26")
Linha 36: Linha 53:
 strptime(x, "%m/%d/%y %H:%M:%S") strptime(x, "%m/%d/%y %H:%M:%S")
  
-## fracoes de segundos+dt2 <- strptime(x, "%m/%d/%y %H:%M:%S"
 +format(dt2, "%c"
 + 
 +dt2 <- sort(dt2) 
 +dt2 
 + 
 +diff(dt2) 
 + 
 +## frações de segundos
 z <- strptime("20/2/06 11:16:16.683", "%d/%m/%y %H:%M:%OS") z <- strptime("20/2/06 11:16:16.683", "%d/%m/%y %H:%M:%OS")
  
Linha 43: Linha 68:
 </code> </code>
  
-<fs small>Lendo dados da área de transferência</fs>+<fs medium>Precisão numérica/ponto flutuante</fs> 
 + 
 +Encontrando dados replicados, e não replicados
 <code R> <code R>
-s1 <- scan()+<- rpois(25, lam=5) 
 +
 +unique(x)
  
-12  13  14   +duplicated(x) 
-21  21  14   +x[!duplicated(x)] 
-12  31  25 +x[duplicated(x)] 
-15  32  29+</code>
  
-s1 <- scan("clipboard")+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>
  
-d1 <- read.table("clipboard") +Mais coisas que deveriam ser iguais... mas não exatamente são ... 
-d1+<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: 
-## exemplos de leitura e manipulacao para ajustes +<code R> 
-## +eq2g <function(a, b, c){ 
-## site MCT --> indicadores + 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)) 
 +}
  
-## Producao cientificatabela 5.1 (pesquisadores)+print(eq2g(1-5, 6), dig=16)
  
-pcPesq <- read.table("clipboard"sep="\t"dec=",") +eq2g(1c(-51), 6)
-head(pcPesq)+
  
-pcPesq <- read.table("clipboard"sep="\t"dec=",", strip.white=T, as.is=T) +eq2g(1-56- c(2, 3)
-head(pcPesq)+
  
-str(pcPesq)+eq2g(1/3, -5/3, 6/3)
  
-ptMil <- function(x) +print(eq2g(1/3, -5/3, 6/3), dig=16
- if(!is.numeric(x& !is.integer(x)) return(as.numeric(gsub("\\.", "", x))) + 
-        else return(x) +eq2g(1/3, -5/3, 6/3) - c(2, 3) 
-+</code> 
-pcPesq <- as.data.frame(lapply(pcPesqptMil))+ 
 + 
 +<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:nvec <- c(vec, i) 
 +}) 
 + 
 +system.time({ 
 +vec <- numeric(n) 
 +for(i in 1:nvec[i] <- i 
 +}
 + 
 +system.time(
 +vec <- 1:n 
 +}) 
 +</code> 
 + 
 +Onderm de operações 
 +<code R> 
 +<- rnorm(10000m=100, sd=10)
  
-## Dados socio economicos --> 9.1 +system.time({ 
-ScEc <- read.table("clipboard", dec=",", sep="\t", na.strings="\\u2026 "+ lsum <- 
-head(ScEc)+ for(i in 1:length(x)){ 
 +   lsum <- lsum + log(x[i]) 
 +  } 
 + })
  
-ScEc <- as.data.frame(lapply(pcPesq, ptMil))+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> </code>

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