Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用dbplyr创建函数时以整洁的方式使用return()_R_Dplyr_Tidyverse_Dbplyr - Fatal编程技术网

在使用dbplyr创建函数时以整洁的方式使用return()

在使用dbplyr创建函数时以整洁的方式使用return(),r,dplyr,tidyverse,dbplyr,R,Dplyr,Tidyverse,Dbplyr,我试图找出如何将应用于我正在创建的一些函数。具体地说,我试图限制我在dbplyr函数的上下文中使用return()——根据样式指南的建议,仅在提前返回的情况下使用。在阅读《风格指南》之前,我会这样做(您需要dplyr和dbplyr来运行此功能): 然后,当我调用该函数时,我没有得到任何返回: > cars_no_return() > 因此,我的问题是,如何处理需要使用collect()从数据库返回data.frame的函数,同时考虑到。您应该查看on.exit。如见 cars\u返

我试图找出如何将应用于我正在创建的一些函数。具体地说,我试图限制我在
dbplyr
函数的上下文中使用
return()
——根据样式指南的建议,仅在提前返回的情况下使用。在阅读《风格指南》之前,我会这样做(您需要
dplyr
dbplyr
来运行此功能):

然后,当我调用该函数时,我没有得到任何返回:

> cars_no_return()
>

因此,我的问题是,如何处理需要使用
collect()
从数据库返回data.frame的函数,同时考虑到。

您应该查看
on.exit
。如见


cars\u返回在该返回的第一种情况下,断开连接从未运行,因为它出现在返回之后。如果要关闭这样的连接,请查看帮助中的退出功能OK这非常有用。这很有道理。你能解释一下为什么
mtcars2
return(mtcars2)
更可取吗?很高兴这有帮助。
return()。我只是没有使用它,因为这符合,因为您不再尝试提前返回某些内容,而不是您正在使用的
on.exit
> cars_return()
# A tibble: 32 x 11
     mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
 1  21.0     6 160.0   110  3.90 2.620 16.46     0     1     4     4
 2  21.0     6 160.0   110  3.90 2.875 17.02     0     1     4     4
 3  22.8     4 108.0    93  3.85 2.320 18.61     1     1     4     1
 4  21.4     6 258.0   110  3.08 3.215 19.44     1     0     3     1
 5  18.7     8 360.0   175  3.15 3.440 17.02     0     0     3     2
 6  18.1     6 225.0   105  2.76 3.460 20.22     1     0     3     1
 7  14.3     8 360.0   245  3.21 3.570 15.84     0     0     3     4
 8  24.4     4 146.7    62  3.69 3.190 20.00     1     0     4     2
 9  22.8     4 140.8    95  3.92 3.150 22.90     1     0     4     2
10  19.2     6 167.6   123  3.92 3.440 18.30     1     0     4     4
# ... with 22 more rows
cars_no_return <- function(){
  con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
  dplyr::copy_to(con, mtcars)

  mtcars2 <- dplyr::tbl(con, "mtcars")

  dplyr::collect(mtcars2)

  DBI::dbDisconnect(con)
}
> cars_no_return()
>