使用 purrr 掌握函数式编程基础
Auriel Fournier
Instructor
library(readr) USbirds <- read_csv("us_data.csv") CANbirds <- read_csv("can_data.csv") MEXbirds <- read_csv("mex_data.csv")birdfiles <- list.files(pattern=".csv") birdfiles
"can_data.csv"
"mex_data.csv"
"us_data.csv"
list_of_birdfiles <- list()
for(i in birdfiles){
list_of_birdfiles[[i]] <- read.csv(i)
}
files <- list.files()
d <- list()
# 遍历 1 到 10,将它们添加到 d 中
for(i in 1:10){
d[[i]] <- read_csv(files[i])
}
map(object, function)
object - 可以是向量或列表
function - 任意 R 函数,只要能接收 object 提供的输入
d <- map(files, read_csv)
bird_counts
[[1]]
[1] 3 1
[[2]]
[1] 3 8 1 2
[[3]]
[1] 8 3 9 9 5 5
[[4]]
[1] 8 9 7 9 5 4 1 5
# 创建 bird_sum 列表,循环求 bird_counts 各元素之和 bird_sum <- list() for(i in seq_along(bird_counts)){ bird_sum[[i]] <- sum(bird_counts[[i]])}# 对 bird_counts 的每个元素求和,存入 bird_sum bird_sum <- map(bird_counts, sum) bird_sum
[[1]]
[1] 4
[[2]]
[1] 14
[[3]]
[1] 39
[[4]]
[1] 48
使用 purrr 掌握函数式编程基础