R: Sys.setlocale() 的静音输出

R: mute output of Sys.setlocale()

我运行一个脚本Rscript script.R > logfile.of.script.txt

在我设置的脚本中

Sys.setlocale("LC_ALL", "en_US.UTF-8")

哪个returns

[1] "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C"

然而,这段文字仍然存在于我不想拥有的日志文件中。我怎样才能让 Sys.setlocale("LC_ALL", "en_US.UTF-8") 运行 安静地没有任何输出到日志文件。 Sys.setlocale()没看出来,要有个静音开关抑制输出。

赋值或包装在invisible(.):

Sys.setlocale("LC_TIME", "English_United States.1252")
# [1] "English_United States.1252"
invisible(Sys.setlocale("LC_TIME", "English_United States.1252"))
ign <- Sys.setlocale("LC_TIME", "English_United States.1252")

虽然此函数确实有副作用,但它也 return 是新值。由于它正在进行部分匹配以找到最佳值,因此 return 值并不总是与提供的参数相同。例如,

Sys.setlocale("LC_TIME", "English")
# [1] "English_United States.1252"

显示了我想要的和我得到的......所以最偏执的方法可能是确保你得到了你所要求的(以防部分匹配过于急切)。我从来没有遇到过需要那种程度的偏执狂的情况,但我又一次很幸运,我的所有工作都是用一种语言(我的主要语言)进行的,没有多语言用户。