R 创建包时的oldLC对象
我刚刚注意到,每当我构建和重新加载一个包时,我都会有一个新对象“oldLC”。它以前从未出现过,所以为什么它现在出现,我如何才能让它停止?从上次制作软件包到现在,我所能想到的唯一改变就是我安装了最新的rstudioR 创建包时的oldLC对象,r,R,我刚刚注意到,每当我构建和重新加载一个包时,我都会有一个新对象“oldLC”。它以前从未出现过,所以为什么它现在出现,我如何才能让它停止?从上次制作软件包到现在,我所能想到的唯一改变就是我安装了最新的rstudio > load_all() Loading tmp > ls() character(0) Restarting R session... > library(tmp) > ls() [1] "oldLC" > oldLC [1] "en_US.UTF
> load_all()
Loading tmp
> ls()
character(0)
Restarting R session...
> library(tmp)
> ls()
[1] "oldLC"
> oldLC
[1] "en_US.UTF-8"
> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] tmp_0.1 roxygen2_3.1.0 devtools_1.4.1
loaded via a namespace (and not attached):
[1] brew_1.0-6 codetools_0.2-8 digest_0.6.4 evaluate_0.5.1
[5] httr_0.2 memoise_0.1 parallel_3.0.2 Rcpp_0.11.0
[9] RCurl_1.95-4.1 stringr_0.6.2 tools_3.0.2 whisker_0.3-2
oldLC
是由“SessionBuild.cpp”脚本创建的临时对象
以下是中的相关片段,解释了它包含区域设置信息的原因:
//格式化要发送到R的命令
格式cmdFmt(
“suppressPackageStartupMessages(”
{oldLC同样的事情刚刚发生在我身上…我也得到了这个…这个斜线分隔的区域设置条目。这在apple darwin上正常吗?我得到了类似“LC_CTYPE=en_US.UTF-8”的区域设置条目“等等。很难排除故障,因为实际上您没有提供复制该行为的代码。您是否尝试在另一个具有相同R版本的plathorm上测试它?若要继续,请尝试直接从终端窗口(不要使用Rstudio)然后从库(tmp);ls();sessionInfo()运行R--vanilla。”看看它是否与您的会话环境有关。实际上没有代码可提供——只需使用rstudio构建并重新加载一个包。我使用R--vanilla做了另一个,它不创建oldLC对象,因此它只在我cmd+shift+b
时创建,即在rstudio中构建并重新加载一个包。它似乎也不是roxygenize
函数,但在R CMD安装
步骤之后,它出现了。我还使用roxygen在R--vanilla中构建了包,但它没有出现在我的工作区中。我甚至不知道rstudio将其源代码放在github上。我想我应该在那里查看
// format the command to send to R
boost::format cmdFmt(
"suppressPackageStartupMessages("
"{oldLC <- Sys.getlocale(category = 'LC_COLLATE'); "
" Sys.setlocale(category = 'LC_COLLATE', locale = 'C'); "
" on.exit(Sys.setlocale(category = 'LC_COLLATE', locale = oldLC));"
" %1%; }"
")");