我在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 :=
反正有阻止这种情况发生的原因吗?
答案 0 :(得分:1)
引用here:
通过查找显示R代码的方式仅由R处理 内部布局代码。
建议安装带有源引用的软件包 将
dispose()
设置为 确保源引用可用。如果他们是你会发现 输出与原始源文件中的输出完全相同,例如UPDATE table_name SET field = REPLACE(field, 'old', 'new')
因此,阻止这种情况发生的一种方法可能是options("keep.source" = TRUE, "keep.source.pkgs" = TRUE)
。