我试图找出哪些额外的参数可以传递给省略号中的dplyr :: collect ….我想这样做因为我认为收集的行为在dplyr版本0.4.3和0.5之间发生了变化.似乎在新版本中,collect()仅下载前100k行,除非传递新的n = Inf参数.
我已经检索了与collect相关的方法:
> methods('collect')
[1] collect.data.frame* collect.tbl_sql*
see '?methods' for accessing help and source code
我查看了S3方法的帮助文件,但无法解决如何获取collect.tbl_sql的帮助,因为?“dplyr :: collect.tbl_sql”不起作用.
最佳答案 如
Chrisss和
Zheyuan Li所述:
>运行方法后方法名称旁边的星号/星号/ *表示不从dplyr命名空间导出这些方法中的每一个.
>要访问帮助文件,需要使用三个冒号,即?dplyr ::: collect.tbl_sql
>但是,这些方法没有帮助文件,因此我们需要检查源代码,以查看各个版本中每个函数的行为.
在0.4.3中通过检查source code中的tbl-sqr.r文件:
collect.tbl_sql <- function(x, ...) {
grouped_df(x$query$fetch(), groups(x))
}
在0.5:
> dplyr:::collect.tbl_sql
function (x, ..., n = 1e+05, warn_incomplete = TRUE)
{
assert_that(length(n) == 1, n > 0L)
if (n == Inf) {
n <- -1
}
sql <- sql_render(x)
res <- dbSendQuery(x$src$con, sql)
on.exit(dbClearResult(res))
out <- dbFetch(res, n)
if (warn_incomplete) {
res_warn_incomplete(res, "n = Inf")
}
grouped_df(out, groups(x))
}
因此,我们可以得出结论,收集的行为确实以我最初在我的问题中描述的方式改变了.