使用逗号小数分隔符而不是 r 中的点创建函数 my.render.cat

问题描述

我正在尝试使用此代码创建一个函数获取 table1 的频率和比例

my.render.cat <- function(x) { c("",sapply(stats.default(x),function(y) with(y,sprintf("%d (%0.0f %%)",FREQ,PCT)))) }

但是当我将它应用到函数 table1() 时,我得到的是带有小数点而不是逗号的比例结果。

我试过 options(OutDec= ",") 但没有任何变化 也不要更改 LC NUMERIC 的 Sys.locale。

我也试过 format(table1,decimal.mark=",") 但它不适用于 table1 输出

有什么建议吗?

我使用 iris 数据集和格式化 Sepal.length 添加一个可重现的示例,以便能够计算比例。

table1::table1(~factor(Sepal.Length) | Species,data = iris,render.categorical=my.render.cat)

解决方法

您可以使用 sub. 替换为 ,

library(table1)

my.render.cat <- function(x) { 
  sub('.',',c("",sapply(stats.default(x),function(y) with(y,sprintf("%d (%0.2f %%)",FREQ,PCT)))),fixed = TRUE) 
}

table1(~factor(Sepal.Length) | Species,data = iris,render.categorical=my.render.cat)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...