lm套model = TRUE在默认情况下,这意味着用于学习的整个数据集被复制,并与安装的对象返回.这是由使用predict但创建内存开销(下面的示例).
我想知道,复制的数据集是用于除了以外的任何原因predict吗?
回答并不是必不可少的,但我也想知道存储数据的模型不是出于其他原因predict.
object.size(lm(mpg ~ ., mtcars))
#> 45768 bytes
object.size(lm(mpg ~ ., mtcars, model = FALSE))
#> 28152 bytes
Run Code Online (Sandbox Code Playgroud)
更大的数据集=更大的开销.
为了分享我的动机,twidlr软件包强制用户在使用时提供数据predict.如果这使得在学习不必要时复制数据集,通过默认来节省内存似乎是合理的model = FALSE.我在这里开了一个相关的问题.
次要动机 - 您可以轻松地适应许多模型,例如lm使用pipelearner,但每次复制数据会产生巨大的开销.因此,找到减少内存需求的方法将非常方便!
我写的R包,要继承两个参数(比如文档x和y)从旧的功能(比如old())一个新的功能,new().扭曲是这两个参数共享相同的参数描述.也就是说,在old()函数中,它们被记录在一行中并用逗号分隔,如下所示:
#' @param x,y Two arguments with the same description
我使用以下方法new()来继承这些参数:
#' @inheritParams old
但是,当我构建包时,new()列表的文档x却没有y.
有没有办法继承像这样的多个参数?
我参加的是有重复的,我列的数据帧(tibbles)不要想加入.下面的示例是我通常会做的(加入i,但不是a或b):
library(dplyr)
df1 <- tibble(i = letters[1:3], a = 1:3, b = 4:6)
df2 <- tibble(i = letters[1:3], a = 11:13, b = 14:16)
d <- full_join(df1, df2, by ="i")
d
#> # A tibble: 3 × 5
#> i a.x b.x a.y b.y
#> <chr> <int> <int> <int> <int>
#> 1 a 1 4 11 14
#> 2 b 2 5 12 15
#> 3 c 3 6 13 16
Run Code Online (Sandbox Code Playgroud)
我希望这些重复的变量作为嵌套列表返回,例如下面创建的输出: …