格式化和导出R中Word的数据帧

格式化和导出R中Word的数据帧,r,export-to-word,R,Export To Word,我有一个简单的数据框,我正试图导出到word文档。我在工作 和记者在一起。我希望所有数字都位于单元格的中心(在正文和标题中) a使用flextable包本身提供的函数,而不是Reporter中提供的函数,因为这些函数为修改正文和标题参数提供了更简单的界面。使用magrittr或dplyr中的管道操作符的示例: df_Flex2 = regulartable(df) %>% width(width = c(0.5, 2)) %>% align(align = "cente

我有一个简单的数据框,我正试图导出到word文档。我在工作 和记者在一起。我希望所有数字都位于单元格的中心(在正文和标题中)


a使用flextable包本身提供的函数,而不是Reporter中提供的函数,因为这些函数为修改正文和标题参数提供了更简单的界面。使用magrittr或dplyr中的管道操作符的示例:

df_Flex2 = 
  regulartable(df) %>%
  width(width = c(0.5, 2)) %>%
  align(align = "center", part = "all")
编辑:设置小数位格式

要控制在regulartable中为非整数值显示的小数位数,请使用set_formatter函数,为要以不同小数位数显示的每列使用自定义格式:

df_Flex2 = 
  regulartable(df) %>%
  set_formatter(a = function(x) sprintf("%.1f", x),
                b = function(x) sprintf("%.1f", x)) %>%
  width(width = c(0.5, 2)) %>%
  align(align = "center", part = "all")
df_Flex2
输出:

如果不想为单个列命名,可以使用set_formatter_type代替set_formatter为数字双精度类型设置修改后的默认值。此示例将regulartable中的双精度小数位数设置为管道表达式中的1位小数:

set_formatter_type(fmt_double = "%.1f")
如果不与管道一起使用(
%%>%%
),则需要提供regulartable变量的名称作为第一个参数:

set_formatter_type(df_Flex2, fmt_double = "%.1f")

使用flextable包本身而不是Reporter中提供的函数,因为这些函数提供了一个更简单的界面来修改正文和标题参数。使用magrittr或dplyr中的管道操作符的示例:

df_Flex2 = 
  regulartable(df) %>%
  width(width = c(0.5, 2)) %>%
  align(align = "center", part = "all")
编辑:设置小数位格式

要控制在regulartable中为非整数值显示的小数位数,请使用set_formatter函数,为要以不同小数位数显示的每列使用自定义格式:

df_Flex2 = 
  regulartable(df) %>%
  set_formatter(a = function(x) sprintf("%.1f", x),
                b = function(x) sprintf("%.1f", x)) %>%
  width(width = c(0.5, 2)) %>%
  align(align = "center", part = "all")
df_Flex2
输出:

如果不想为单个列命名,可以使用set_formatter_type代替set_formatter为数字双精度类型设置修改后的默认值。此示例将regulartable中的双精度小数位数设置为管道表达式中的1位小数:

set_formatter_type(fmt_double = "%.1f")
如果不与管道一起使用(
%%>%%
),则需要提供regulartable变量的名称作为第一个参数:

set_formatter_type(df_Flex2, fmt_double = "%.1f")

谢谢,它起作用了。但是,如果我使用十进制数,默认情况下会将“0”添加到三个十进制数(尝试使用df=data.frame(a=1.1,b=1.1),它将显示1.100)。我查看了文档,但没有找到处理方法。记者没有这种行为。现在添加了如何设置数字格式的详细信息。要设置0位小数(即仅限整数),请在上面的匿名函数中使用sprintf(“%.0f”,x)。@StewartRoss感谢您的帮助(我没有看到那篇文章)。我真的很感激这种精确和定性的帮助:)不客气@David Gohel。你设计了这些非常非常有用的软件包,我至少能为其他人提供一些帮助。谢谢,这很有效。但是,如果我使用十进制数,默认情况下会将“0”添加到三个十进制数(尝试使用df=data.frame(a=1.1,b=1.1),它将显示1.100)。我查看了文档,但没有找到处理方法。记者没有这种行为。现在添加了如何设置数字格式的详细信息。要设置0位小数(即仅限整数),请在上面的匿名函数中使用sprintf(“%.0f”,x)。@StewartRoss感谢您的帮助(我没有看到那篇文章)。我真的很感激这种精确和定性的帮助:)不客气@David Gohel。你设计了这些非常非常有用的软件包,我至少能为其他人提供一些帮助。