Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Próxima revisão | Revisão anterior | ||
| cursos:mct:exemplo5 [2011/05/06 00:44] – criada 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 ====== | ||
| - | < | + | < |
| - | </ | + | <code R> |
| - | require(MASS) | + | x <- rpois(10, lam=10) |
| - | data(hills) | + | x |
| - | 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(x, decreasing=T) | |
| - | ## uma forma não muito adequada: | + | |
| - | solve(t(X) %*% X) %*% t(X) %*% y | + | |
| - | + | ||
| - | ## outra melhor: | + | |
| - | solve(crossprod(X), crossprod(X, | + | |
| </ | </ | ||
| - | < | + | < |
| <code R> | <code R> | ||
| - | Sys.time() | + | ## transformando caracteres em datas |
| + | dt1 <- as.Date(" | ||
| + | dt1 | ||
| + | ## exibindo a data de otras formas | ||
| + | format(dt1, " | ||
| + | format(dt1, " | ||
| + | format(dt1, " | ||
| + | format(dt1, " | ||
| - | format(as.Date(" | + | ## opcoes disponíveis para exibição: |
| - | format(as.Date(Sys.time(), | + | |
| # 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(), | ||
| + | |||
| + | ## as datas podem ser fornecidas de outras maneiras... | ||
| + | x <- c("25set1967", "28set1969", "30jan2003", "05jul2004") | ||
| z <- strptime(x, " | z <- strptime(x, " | ||
| z | z | ||
| + | ## | ||
| + | ## Ver detalhes aqui!!! | ||
| + | ## | ||
| + | ## e note a confusão com a omisão do século !!! | ||
| + | x <- c(" | ||
| + | z <- strptime(x, " | ||
| + | z | ||
| + | x <- c(" | ||
| + | z <- strptime(x, " | ||
| + | z | ||
| + | |||
| + | ## concatenando datas e horarios para formar registros únicos | ||
| dates <- c(" | dates <- c(" | ||
| times <- c(" | times <- c(" | ||
| Linha 36: | Linha 53: | ||
| strptime(x, " | strptime(x, " | ||
| - | ## fracoes | + | dt2 <- strptime(x, " |
| + | format(dt2, " | ||
| + | |||
| + | dt2 <- sort(dt2) | ||
| + | dt2 | ||
| + | |||
| + | diff(dt2) | ||
| + | |||
| + | ## frações | ||
| z <- strptime(" | z <- strptime(" | ||
| z | z | ||
| Linha 43: | Linha 68: | ||
| </ | </ | ||
| - | < | + | < |
| + | |||
| + | Encontrando dados replicados, e não replicados | ||
| <code R> | <code R> | ||
| - | s1 <- scan() | + | x <- rpois(25, lam=5) |
| + | x | ||
| + | unique(x) | ||
| - | 12 13 14 | + | duplicated(x) |
| - | 21 21 14 | + | x[!duplicated(x)] |
| - | 12 31 25 | + | x[duplicated(x)] |
| - | 15 32 29 | + | </ |
| - | s1 <- scan(" | + | Representação de números e ponto flutuante.\\ |
| + | '' | ||
| + | <code R> | ||
| + | .1 == .3/3 | ||
| + | all.equal(.1, .3/3) | ||
| + | isTRUE(all.equal(0.1, | ||
| + | identical(.1, | ||
| + | </ | ||
| - | d1 <- read.table(" | + | 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) | ||
| + | </ | ||
| - | ## | + | Um exemplo com uma função |
| - | ## exemplos de leitura e manipulacao | + | <code R> |
| - | ## | + | eq2g <- function(a, b, c){ |
| - | ## site MCT --> | + | delta <- b^2 - 4 * a * c |
| + | if(is.complex(delta) || all(delta | ||
| + | delta <- sqrt(delta) | ||
| + | else | ||
| + | delta <- sqrt(as.complex(delta)) | ||
| + | return(cbind(-b + c(-1,1) * delta)/ | ||
| + | } | ||
| - | ## Producao cientifica, tabela | + | print(eq2g(1, -5, 6), dig=16) |
| - | pcPesq <- read.table(" | + | eq2g(1, c(-5, 1), 6) |
| - | head(pcPesq) | + | |
| - | pcPesq <- read.table(" | + | eq2g(1, -5, 6) - 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(" | + | |
| - | else return(x) | + | eq2g(1/3, -5/3, 6/3) - c(2, 3) |
| - | } | + | </ |
| - | pcPesq | + | |
| + | |||
| + | <fs medium> | ||
| + | |||
| + | 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 | ||
| + | }) | ||
| + | </ | ||
| + | |||
| + | Onderm de operações | ||
| + | <code R> | ||
| + | x <- rnorm(10000, m=100, sd=10) | ||
| - | ## Dados socio economicos --> 9.1 | + | system.time({ |
| - | ScEc <- read.table(" | + | lsum <- 0 |
| - | head(ScEc) | + | for(i in 1:length(x)){ |
| + | lsum <- lsum + log(x[i]) | ||
| + | } | ||
| + | }) | ||
| - | ScEc <- as.data.frame(lapply(pcPesq, ptMil)) | + | system.time(lsum |
| + | c(log(12.3), | ||
| + | log(c(12.3, 16.7, 18.3)) | ||
| </ | </ | ||