在dplyr中计算,收集和折叠的内容是什么?

Bla*_*ard 9 r dataframe dplyr

现在我正在学习dplyr包R,但在了解这三个功能是什么砸墙- compute,collectcollapse-做.

据我所知,内部dplyr不使用该类型data.frame; 它将数据存储到自己的类型tbltbl_df.

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

batting <- tbl(lahman_sqlite(), "Batting")
dim(collect(batting))
Run Code Online (Sandbox Code Playgroud)

这将[1] 99846 22在2016年dim(batting)返回,同时返回[1] NA 22.

但是,我不确定其他两个功能computecollapse- 做什么.如果您查看?collect,文档说如下:

描述:

'compute'强制计算延迟tbls,将数据留在远程源中.'collect'也强制计算,但会将数据带回R data.frame(存储在'tbl_df'中).'collapse'不强制计算,而是将复杂的tbl折叠成可以放置其他限制的形式.

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


UPDATE

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

Ben*_*Ben 5

dplyr 小插曲之一

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

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

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

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

collect()是您最常使用的功能。一旦达到所需的操作集,就可以collect()将数据拉入本地 tbl_df()。如果您了解 SQL,则可以使用compute()collapse()来优化性能。

如果这没有帮助,最好的办法可能是研究每个函数的源代码。您可以在此处查看有关如何执行此操作的说明:如何查看 `dplyr::collect` 方法的帮助?

  • 据推测,阅读文档(如 OP 所示)并在此处提问的人会发现源代码不太容易理解,不是吗? (2认同)