计算,收集和折叠在dplyr中做什么?

时间:2016-12-31 04:56:45

标签: r dataframe dplyr

我现在正在学习R中的dplyr软件包,但是在了解这三个函数 - computecollectcollapse - 之后会发生什么。< / p>

我了解dplyr内部不使用data.frame类型;它会将其数据存储到自己的类型tbltbl_df

然后,为了将自定义类型转换回R的默认data.frame以使用data.frame上的一组默认函数,您必须使用collect,例如:

batting <- tbl(lahman_sqlite(), "Batting")
dim(collect(batting))

从2016年开始返回[1] 99846 22,而dim(batting)返回[1] NA 22

但是,我不确定其他两个函数 - computecollapse - 是做什么的。如果您通过?collect查看,则说明以下内容:

  

说明

     

'compute'强制计算延迟tbls,将数据保留在        远程源。 'collect'也强制计算,但会带来        数据返回R data.frame(存储在'tbl_df'中)。 '坍方'        不会强制计算,而是将复杂的tbl折叠成一个表单        可以施加额外的限制。

这是什么意思,特别是强制计算懒惰的tlbs

更新

我想知道这些功能的作用,并想澄清一个人做了什么,其他人做了什么。

1 个答案:

答案 0 :(得分:3)

来自dplyr vignettes之一:

  

强制计算查询有三种方法:

     
      
  • collect()执行查询并将结果返回给R。

  •   
  • compute()执行查询并将结果存储在临时中   数据库中的表。

  •   
  • collapse()将查询转换为表格表达式。

  •   
     

collect()是您最常用的功能。一旦你达到了这一组   您需要的操作,使用collect()将数据拉入本地   tbl_df()。如果您了解SQL,则可以使用compute()collapse()   优化绩效。

如果这没有帮助,最好的办法是研究每个功能的源代码。您可以在此处查看有关如何执行此操作的说明:How do I see the help for the `dplyr::collect` method?