我只想在R中设置一个选项,显示所有带有千位本地化分隔符的数字。
我看到很多帖子涵盖格式和 formatC ,但我每次都需要调用该函数。
// using Microsoft.Extensions.Logging.Console;
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureLogging(logging =>
...
logging.AddFilter<ConsoleLoggerProvider>(
"Microsoft.AspNetCore.Server.Kestrel",
LogLevel.Critical))
.Build();
必须有一个像数字一样的解决方案,例如
formatC(1:10 * 100000, format="d", big.mark=",")
感谢。
答案 0 :(得分:3)
正如我的评论中所提到的,我能想到的最简单的方法是在thousands
的参数列表和正文中的print.default
语句中添加if()
选项。 / p>
print.default <- function (x, digits = NULL, quote = TRUE, na.print = NULL, print.gap = NULL,
right = FALSE, max = NULL, useSource = TRUE, thousands = TRUE, ...)
{
noOpt <- missing(digits) && missing(quote) && missing(na.print) &&
missing(print.gap) && missing(right) && missing(max) &&
missing(useSource) && missing(...)
if(thousands) {
return(formatC(x, format="d", big.mark=","))
}
.Internal(print.default(x, digits, quote, na.print, print.gap,
right, max, useSource, noOpt))
}
现在我们必须用print
换行,但效果很好。
print(1:10 * 100000)
# [1] "100,000" "200,000" "300,000" "400,000" "500,000" "600,000"
# [7] "700,000" "800,000" "900,000" "1,000,000"
print(1:10 * 100000, thousands=FALSE)
# [1] 1e+05 2e+05 3e+05 4e+05 5e+05 6e+05 7e+05 8e+05 9e+05 1e+06
答案 1 :(得分:3)
一个简单的解决方法是定义一个专用函数来打印带有千位分隔符的数字,可以调用它,例如printT()
:
printT <- function(x) {formatC(x, format="d", big.mark=",")}
示例:
printT(1:10 * 100000)
[1] "100,000" "200,000" "300,000" "400,000" "500,000" "600,000" "700,000"
[8] "800,000" "900,000" "1,000,000"