开始使用免费开始使用

并行过滤器

您在联合国担任数据顾问,他们希望对全球艺术类学生进行调研。他们收集了一份包含设有人文与艺术学院的大学数据集,并决定在每个国家中选出顶尖的艺术类大学参与问卷。

uni_list 是由数据框构成的列表,每个元素对应一个国家的数据。每个数据框都包含一列 total_score。以下函数可供您使用:

filter_df <- function (df, select_n_unis) {
  df %>% 
    top_n(select_n_unis, total_score)
}

此函数依赖 dplyr。参数 select_n_unis 用于指定要选择的顶尖大学数量。现在要求您并行地从每个 CSV 文件中过滤出前 5 所大学。parallel 包已为您加载。

本练习是课程的一部分

R 并行编程

查看课程

练习说明

  • 在集群 cl 的每个核心上加载 dplyr
  • 将变量 n_unis 导出到集群 cl
  • 使用 parLapply()filter_df() 应用于 uni_list 的每个元素。
  • 将要选择的大学数量 n_unis 传给 filter_df() 中对应的参数。

交互式实操练习

通过完成这段示例代码来试试这个练习。

cl <- makeCluster(4)
# Load dplyr in cluster
___

n_unis <- 5
# Export n_unis to cluster
___(___, ___, envir = environment())
# Apply filter_df() to each element of uni_list
ls_df <- parLapply(___, ___, ___,
                   # Supply number of universities to select
                   ___ = ___)
stopCluster(cl)
编辑并运行代码