使用flextable r软件包格式化多列
是否可以使用FlexTable使用一行脚本格式化多列 该示例包括两种不同类型的double变量。我想:使用flextable r软件包格式化多列,r,flextable,R,Flextable,是否可以使用FlexTable使用一行脚本格式化多列 该示例包括两种不同类型的double变量。我想: 将大于1000的变量四舍五入到最接近的1000,并添加千个逗号格式,以及 小于小数点后一到两位的四舍五入变量 使用flextable相对简单,但数据集要大得多,这就成了一个难题。我找不到更有效的方法 我可以使用dplyr预处理数据(尽管逗号格式要求将变量类型从double更改为character)。 如果可能的话,我更喜欢在flextable中执行此操作。 我知道Huxtable可以设置多列格
set.seed(100)
tib%
设置格式化程序(b=函数(x)格式(圆形(x,-3),big.mark=“,”))%%>%
设置格式化程序(c=函数(x)格式(圆形(x,-3),big.mark=“,”))%%>%
set_格式化程序(d=函数(x)格式(圆形(x,-3),big.mark=“,”))%%>%
set_格式化程序(e=函数(x)轮(x,2))%>%
set_格式化程序(f=函数(x)轮(x,2))%>%
打印(preview=“docx”)
是的,可以在此处找到文档: 在这里:
对不起,如果没有为每一列单独的代码行,我似乎无法应用链接来格式化多个列。我的问题可能会更好:是否有这样一个函数:
set_formatter(x,col_to_format(b,c,d)=function(x)format(round(x,-3),big.mark=“,”)
(我已经编写了col_to_format参数)不,这样的函数不存在(或者它已经被记录在案;)。提供2个功能:一个是列式,另一个是类型式。当然,您可以编写set_格式化程序函数。非常感谢您的澄清。这确实是一个功能要求。@DavidGohel,你能链接或解释更多关于按类型格式化的内容吗?我有一个类似的问题,但我不能特别引用列的名称,因为它们是动态的。@Tjebo这些新函数应该有帮助:)
set.seed(100)
tib <- tibble(a = letters[1:4],
b = runif(4)*sample(c(10000, 1000000, 10000000), 4, replace = TRUE),
c = runif(4)*sample(c(10000, 1000000, 10000000), 4, replace = TRUE),
d = runif(4)*sample(c(10000, 1000000, 10000000), 4, replace = TRUE),
e = runif(4),
f = runif(4))
regulartable(tib) %>%
set_formatter(b = function(x) format(round(x, -3), big.mark = ",")) %>%
set_formatter(c = function(x) format(round(x, -3), big.mark = ",")) %>%
set_formatter(d = function(x) format(round(x, -3), big.mark = ",")) %>%
set_formatter(e = function(x) round(x, 2)) %>%
set_formatter(f = function(x) round(x, 2)) %>%
print(preview = "docx")
set_formatter(b = function(x) format(round(x, -3), big.mark = ","),
c = function(x) format(round(x, -3), big.mark = ","),
d = function(x) format(round(x, -3), big.mark = ","),
e = function(x) round(x, 2),
f = function(x) round(x, 2))