从github下载/安装软件包以转换基础R代码

时间:2018-12-05 16:40:25

标签: r devtools rlang tidyeval

我在github上有一个私有的R包。

我经常使用basemap接受来自函数的输入并与tidyverse一起使用。

例如:

!!rlang::sym(function_argument)

因此我已将此文件上传到私有github,然后如果我要安装它-example_function = function(x){ new = mtcars %>% arrange(desc(!!rlang::sym(x)) return(new) } example_function('mpg')

当我查看函数中的基础代码时

devtools::install_git('myaccount/myrepo')

无论我在哪里myinstalled_package::example_function ,它都显示为 !(!rlang::sym 。该函数实际上仍然有效,但是再次,当我检查代码时,它没有起作用。我查看了github,发现那里的代码是正确的,只是当我将其下载到计算机上时,我才有了这种烦人的转换。

我还看到了其他类似的变化,例如是否将!!rlang::sym转换为!!each_var :=

反正有阻止这种情况发生的原因吗?

1 个答案:

答案 0 :(得分:1)

引用here

  

通过查找显示R代码的方式仅由R处理   内部布局代码。

     

建议安装带有源引用的软件包   将dispose()设置为   确保源引用可用。如果他们是你会发现   输出与原始源文件中的输出完全相同,例如

UPDATE table_name SET field = REPLACE(field, 'old', 'new')

因此,阻止这种情况发生的一种方法可能是options("keep.source" = TRUE, "keep.source.pkgs" = TRUE)