现在我正在学习dplyr
包R,但在了解这三个功能是什么砸墙- compute
,collect
和collapse
-做.
据我所知,内部dplyr
不使用该类型data.frame
; 它将数据存储到自己的类型tbl
或tbl_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
.
但是,我不确定其他两个功能compute
和collapse
- 做什么.如果您查看?collect
,文档说如下:
描述:
'compute'强制计算延迟tbls,将数据留在远程源中.'collect'也强制计算,但会将数据带回R data.frame(存储在'tbl_df'中).'collapse'不强制计算,而是将复杂的tbl折叠成可以放置其他限制的形式.
这是什么意思,特别强制计算懒惰的tlbs?
我想知道这些功能的作用,并希望澄清一个人做了什么,其他人做了什么.
有三种方法可以强制计算查询:
collect()
执行查询并将结果返回给 R。
compute()
执行查询并将结果存储在数据库的临时表中。
collapse()
将查询转换为表表达式。
collect()
是您最常使用的功能。一旦达到所需的操作集,就可以collect()
将数据拉入本地 tbl_df()。如果您了解 SQL,则可以使用compute()
和collapse()
来优化性能。
如果这没有帮助,最好的办法可能是研究每个函数的源代码。您可以在此处查看有关如何执行此操作的说明:如何查看 `dplyr::collect` 方法的帮助?