Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Pacote {purrr}
- # --------------------------------------------------
- # Vamos ver mais um exemplo com um loop for
- set.seed(123)
- df <- data.frame(
- a = rnorm(10),
- b = rnorm(10),
- c = rnorm(10),
- d = rnorm(10)
- )
- df
- mean(df$a)
- mean(df$b)
- mean(df$c)
- mean(df$d)
- ncol(df)
- medias <- vector("double", ncol(df))
- medias
- for (i in seq_along(df)) {
- medias [i]<-mean(df[,i])
- }
- # Adotando uma linguagem funcional podemos escrever
- col_mean <- function(df){
- output <- vector("double", ncol(df))
- for (i in seq_along(df)) {
- output [i]<-mean(df[,i])
- }
- output
- }
- col_mean(df)
- # ... e da mesma forma para mediana (median) e desvio padrão (sd)
- # -------------------------------------------------
- # Outro exemplo de uma função criada por você
- f <- function(x,i) (x - mean(x))^i
- x <- c(-5, 2, 7)
- f(x,3)
- # ------------------------------------------------------
- # Funções map(), map_lgl(), map_int(), map_dbl() e map_chr() do pacote {purrr}
- library(tidyverse)
- df
- map_dbl(df,mean)
- map_dbl(df,median)
- map_dbl(df,sd)
- df %>% map_dbl(mean)
- df %>% map_dbl(median)
- df %>% map_dbl(sd)
- f(map_dbl(x,mean),3)
- f(map_dbl(df,mean),3)
- z <- list(x=1:3,y=4:5)
- z
- map_int(z,length)
- ? mtcars
- head(mtcars)
- unique(mtcars$cyl)
- models <- mtcars %>%
- split(mtcars$cyl) %>%
- map(function(df) lm(mpg~wt, dat=df))
- models
- class(models)
- map(models,2)
- # ----------------------------------------------------
- # Função map2() para dois argumentos
- # Um só argumento: a média mu
- mu <- list(5,10,-3)
- map(mu,rnorm,n=5)
- mu %>% map(rnorm,n=5)
- # Dois argumentos: a média mu e o desvio padrão sigma
- mu <- list(5,10,-3)
- sigma <- list(1,5,10)
- map2(mu,sigma,rnorm,n=5)
- # Há ainda a função pmap() para múltiplos argumentos
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement