探索数据集

使用 purrr 的函数式编程进阶

Colin Fay

Data Scientist & R Hacker at ThinkR

数据集

rstudioconf:包含 5055 条推文的列表

length(rstudioconf)

length(rstudioconf[[1]])
5055

31
library(purrr)
vec_depth(rstudioconf)
4

来源:ThinkR-open/datasets

使用 purrr 的函数式编程进阶

JSON——典型的 API 输出

JSON == 嵌套列表

{
    "menu": {
        "id": "file",
        "value": "File",
        "popup": {
            "menuitem": [
                { "value": "New", "onclick": "CreateNewDoc" },
                { "value": "Open", "onclick": "OpenDoc" },
                { "value": "Close", "onclick": "CloseDoc" }
            ]
        }
    }
}
使用 purrr 的函数式编程进阶

谓词回顾

我们已学习:

  • map_*()

  • discard()

  • keep()

谓词函数式:

  • 接收元素与谓词
  • 将谓词应用于元素
使用 purrr 的函数式编程进阶

keep() 与 discard()

keep() 保留满足条件的元素:

keep(1:10, ~ .x < 5)
1 2 3 4

discard() 丢弃满足条件的元素:

discard(1:10, ~ .x < 5)
5  6  7  8  9 10
使用 purrr 的函数式编程进阶

让我们练习!

使用 purrr 的函数式编程进阶

Preparing Video For Download...