更复杂的问题

使用 purrr 掌握函数式编程基础

Auriel Fournier

Instructor

当目标值被深埋时怎么办?

library(repurrrsive)
data(gh_repos)

forks <- gh_repos %>% 
  map( ~map(.x, "forks"))

forks
[[1]]
[[1]][[1]]
[1] 0

[[1]][[2]]
[1] 1

[[1]][[3]]
[1] 0

[[1]][[4]]
[1] 0
使用 purrr 掌握函数式编程基础

在 purrr 中做汇总统计

# 创建空数据框
bird_df <- data.frame(weight=NA, 
        wing_length=rep(NA, 4))

# 提取鸟类名称
bird_df$taxa <- 
        names(bird_measurements)

# for 循环提取每个物种
for(i in 1:4){
bird_df[i,] <- 
        bird_measurements[[i]]  
    }
summary(bird_df)
使用 purrr 掌握函数式编程基础

汇总统计

bird_measurements %>% 
  map_df(~ data_frame(
  weight = .x[["weight"]],
  wing_length = .x[["wing length"]],
  taxa = "bird")) %>%
     select_if(is.numeric)  %>%
     summary(.x)

$weight
  Min. 1st Qu.  Median    
  7.00   59.12   86.45 

  Mean 3rd Qu.    Max.
  69.97   97.30  100.00 

$wing_length
  Min. 1st Qu.  Median    
  12.00   29.25   55.00   

  Mean 3rd Qu.    Max. 
  63.00   88.75  130.00
使用 purrr 掌握函数式编程基础

让我们来练习吧!

使用 purrr 掌握函数式编程基础

Preparing Video For Download...