• R语言
  • R包开发中如何定义常量

我在R/globalconstants.R中定义了全局变量

cat R/globalconstants.R

GC1 <- 1

在其他R函数中如:R/myfun.R中引用全局常量GC1

cat R/myfun.R

myfun <- function(gc1 = GC1) {
   return(gc1)
}

但在R包检查时报错:

Error in GC1 : 
  object 'GC1' not found

请教如何在R包中定义常量

    mingsu tctcab 非也,把对象存为数据太浪费了。真正需要的是在 DESCRIPTION 文件的 Collate 字段中定义代码文件的顺序,就像这样。如果你用 roxygen 的话,可用 @include 自动实现,就像这样。也就是,如果一个代码文件中需要用到其它代码文件中的对象,那么前者必须在后者之后加载(即:前者必须 @include 后者)。

    但凭我的经验,你这个问题有点奇怪,因为默认代码文件顺序是按文件名排序的,g 开头的应该会在 m 开头的文件之前运行。除非你这是随意编造的文件名。所以提问的时候,最好还是给个完整的可重复的例子,这样省得别人猜。