Não foi possível enviar o arquivo. Será algum problema com as permissões?
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
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 | ||
ridiculas [2011/06/01 14:07] walmes |
ridiculas [2011/07/05 14:13] walmes [section 2] |
||
---|---|---|---|
Linha 5: | Linha 5: | ||
**//Ridículas//** é a página do LEG dedicada à fornecer //dicas curtas// sobre R, e.g. condução de análises, operação com dados e confecção de gráficos. As dicas estão organizadas pelo título, seguido de descrição, palavras-chave e CMR (código mínimo reproduzível). Se você deseja contribuir com a nossa página de Ridículas, envie e-mail para ''walmes@ufpr.br''. | **//Ridículas//** é a página do LEG dedicada à fornecer //dicas curtas// sobre R, e.g. condução de análises, operação com dados e confecção de gráficos. As dicas estão organizadas pelo título, seguido de descrição, palavras-chave e CMR (código mínimo reproduzível). Se você deseja contribuir com a nossa página de Ridículas, envie e-mail para ''walmes@ufpr.br''. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Como fazer a justaposição de vários data.frames ==== | ||
+ | |||
+ | Temporariamente sem descrição.\\ | ||
+ | palavras-chave: #merge, #Reduce. | ||
+ | |||
+ | <code R> | ||
+ | #------------------------------------------------------------------------------------------ | ||
+ | # por Walmes | ||
+ | #------------------------------------------------------------------------------------------ | ||
+ | |||
+ | id <- 1:30 # número único que identifica os registros | ||
+ | n <- 20 # número de registros por data.frame | ||
+ | |||
+ | a1 <- data.frame(id=sample(id, n), v1=rnorm(n)) # resposta 1 | ||
+ | a2 <- data.frame(id=sample(id, n), v2=rpois(n,10)) # resposta 2 | ||
+ | a3 <- data.frame(id=sample(id, n), v3=runif(n)) # resposta 3 | ||
+ | |||
+ | merge(a1, a2, by="id") # justapõe 2 data.frames de cada vez | ||
+ | |||
+ | a0 <- list(a1, a2, a3) # cria uma lista com todos os data.frames | ||
+ | |||
+ | |||
+ | Reduce(function(x, y) merge(x, y, by="id"), a0, accumulate=FALSE) # justapõe todos | ||
+ | # font: http://rwiki.sciviews.org/doku.php?id=tips:data-frames:merge | ||
+ | |||
+ | #------------------------------------------------------------------------------------------ | ||
+ | </code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | ==== Gráfico de valores observados e curva de valores preditos para modelo linear generalizado ==== | ||
+ | |||
+ | Temporariamente sem descrição.\\ | ||
+ | palavras-chave: #glm, #poisson, #predict. | ||
+ | |||
+ | <code R> | ||
+ | #------------------------------------------------------------------------------------------ | ||
+ | # por Walmes | ||
+ | #------------------------------------------------------------------------------------------ | ||
+ | |||
+ | da <- expand.grid(trat=gl(2,1), tempo=1:20) | ||
+ | y <- rpois(nrow(da), lambda=da$tempo/5) | ||
+ | |||
+ | g0 <- glm(y~trat/(tempo+I(tempo^2)), data=da, family=poisson) | ||
+ | |||
+ | new <- expand.grid(trat=gl(2,1), tempo=seq(1,20,l=50)) | ||
+ | new$p0 <- predict(g0, newdata=new, type="response") | ||
+ | |||
+ | plot(y~tempo, da, col=da$trat) | ||
+ | with(subset(new, trat=="1"), lines(p0~tempo, col=1)) | ||
+ | with(subset(new, trat=="2"), lines(p0~tempo, col=2)) | ||
+ | |||
+ | #------------------------------------------------------------------------------------------ | ||
+ | </code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | ==== Gráficos de barras com intervalos de confiança para as médias ==== | ||
+ | |||
+ | Temporariamente sem descrição.\\ | ||
+ | palavras-chave: #intervalo, #erro_padrão, #barras. | ||
+ | |||
+ | <code R> | ||
+ | #------------------------------------------------------------------------------------------ | ||
+ | # por Walmes | ||
+ | #------------------------------------------------------------------------------------------ | ||
+ | # cmr para colocar intervalos de confiança para as medias num gráfico de barras | ||
+ | |||
+ | da <- data.frame(trat=gl(5,8)) | ||
+ | da$y <- as.numeric(da$trat)+rnorm(nrow(da)) | ||
+ | |||
+ | m0 <- lm(y~trat, da) | ||
+ | |||
+ | new <- data.frame(trat=levels(da$trat)) | ||
+ | new$pred <- predict(m0, newdata=new, interval="confidence") | ||
+ | str(new) | ||
+ | |||
+ | ylim <- c(0, max(new$pred)*1.05) | ||
+ | bp <- barplot(new$pred[,1], ylim=ylim) | ||
+ | arrows(bp, new$pred[,2], bp, new$pred[,3], code=3, angle=90) | ||
+ | box() | ||
+ | |||
+ | #------------------------------------------------------------------------------------------ | ||
+ | # outras referências | ||
+ | |||
+ | browseURL("http://addictedtor.free.fr/graphiques/graphcode.php?graph=54") | ||
+ | browseURL("http://addictedtor.free.fr/graphiques/RGraphGallery.php?graph=72") | ||
+ | |||
+ | #------------------------------------------------------------------------------------------ | ||
+ | </code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Gráficos do R exportados pelo dispositivo tikz ==== | ||
+ | |||
+ | Temporariamente sem descrição.\\ | ||
+ | palavras-chave: #tikz, #sweave, #latex. | ||
+ | |||
+ | <code> | ||
+ | \documentclass{article} | ||
+ | |||
+ | \usepackage{Sweave} | ||
+ | \usepackage{tikz} | ||
+ | |||
+ | \SweaveOpts{keep.source=true} | ||
+ | |||
+ | \title{Usando ti\textit{k}z no Sweave} | ||
+ | \author{Walmes Zeviani\\ LEG/UFPR} | ||
+ | |||
+ | \begin{document} | ||
+ | |||
+ | \maketitle | ||
+ | |||
+ | C\'{o}digo m\'{i}nimo reproduz\'{i}vel usando \texttt{tikzDevice} para exportar gr\'{a}ficos feitos no R | ||
+ | para codifica\c{c}\~{a}o ti\textit{k}z. | ||
+ | |||
+ | {\footnotesize | ||
+ | <<results=hide>>= | ||
+ | #------------------------------------------------------------------------------------------ | ||
+ | require(tikzDevice) | ||
+ | set.seed(2011); x <- rnorm(200) | ||
+ | tikz("plot.tex", w=5, h=3) | ||
+ | hist(x, freq=FALSE, ylab="Densidade", | ||
+ | main="Histograma de uma amostra de $X \\sim N(\\mu=0, \\sigma^2=1)$") | ||
+ | curve(dnorm(x), col=2, add=TRUE, lwd=2); rug(x) | ||
+ | legend("topleft", col=2, lty=1, lwd=2, bty="n", | ||
+ | legend="$\\displaystyle \\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\cdot e^{-\\frac{(x-\\mu)^2}{2\\sigma^2}}$") | ||
+ | box(); dev.off() | ||
+ | #------------------------------------------------------------------------------------------ | ||
+ | @ | ||
+ | } | ||
+ | |||
+ | \input{plot.tex} | ||
+ | |||
+ | \end{document} | ||
+ | </code> | ||
---- | ---- | ||
Linha 16: | Linha 157: | ||
<code R> | <code R> | ||
#------------------------------------------------------------------------------------------ | #------------------------------------------------------------------------------------------ | ||
- | # por Ivan e Walmes | + | # por Ivan, Benilton e Walmes |
#------------------------------------------------------------------------------------------ | #------------------------------------------------------------------------------------------ | ||
# dados de séries de dados indexadas no tempo (meses) | # dados de séries de dados indexadas no tempo (meses) |