如何在kableExtra table的某些列中使用数学符号或工程符号?
How to use mathematical notation or engineering notation in certain columns of a kableExtra table?
可以将 docxtools::format_engr() 应用于 table 以从计算机符号转换为工程符号。
(来源:docxtools)
将 docxtools::format_engr()
应用于 df 会将所有列更改为工程符号。
- 如何仅将函数应用于 df 的某些列?
- 是否有数学符号的等效函数?
对于下面的玩具示例,想法是获取 engineering/mathematical 表示法中的 p_Pa
列,而所有其他列保持不变。
MWE
Table 根据需要仅缺少工程符号中的 p_Pa
列
library(docxtools)
density2 <- density
density2$density <- density2$density*1000
kable(density2, digits = 2)
应用格式:“所有”列更改为工程符号
# Apply formatting:
density_engr <- density2 %>%
docxtools::format_engr()
kable(density_engr)
将 sigdig()
传递给 docxtools::format_engr()
(例如,诸如“sigdig = c(0,0,2,3,2,3)”之类的东西)以定义如何格式化哪个列帮不上忙。
工程符号仍然适用于所有列,只是位数不同。
我们的想法是将 df 作为 kableExtra
table 包含在 R markdown
报告中,该报告使用 knitr
编译为 PDF 和 HTML。
您可以创建一个仅包含要格式化的列的数据框,对其进行格式化,然后将其分配到原始位置。例如,从您的 density2
:
开始
density_engr <- density2 # no formatting yet
do_format <- c("T_K", "p_Pa") # which columns to format?
density_engr[do_format] <- docxtools::format_engr(density_engr[do_format])
除了 density_engr[do_format]
之外,还有其他方法可以进行索引,但请注意:您要确保得到一个数据帧作为结果,而不是提取列。
可以将 docxtools::format_engr() 应用于 table 以从计算机符号转换为工程符号。
将 docxtools::format_engr()
应用于 df 会将所有列更改为工程符号。
- 如何仅将函数应用于 df 的某些列?
- 是否有数学符号的等效函数?
对于下面的玩具示例,想法是获取 engineering/mathematical 表示法中的 p_Pa
列,而所有其他列保持不变。
MWE
Table 根据需要仅缺少工程符号中的 p_Pa
列
library(docxtools)
density2 <- density
density2$density <- density2$density*1000
kable(density2, digits = 2)
应用格式:“所有”列更改为工程符号
# Apply formatting:
density_engr <- density2 %>%
docxtools::format_engr()
kable(density_engr)
将 sigdig()
传递给 docxtools::format_engr()
(例如,诸如“sigdig = c(0,0,2,3,2,3)”之类的东西)以定义如何格式化哪个列帮不上忙。
工程符号仍然适用于所有列,只是位数不同。
我们的想法是将 df 作为 kableExtra
table 包含在 R markdown
报告中,该报告使用 knitr
编译为 PDF 和 HTML。
您可以创建一个仅包含要格式化的列的数据框,对其进行格式化,然后将其分配到原始位置。例如,从您的 density2
:
density_engr <- density2 # no formatting yet
do_format <- c("T_K", "p_Pa") # which columns to format?
density_engr[do_format] <- docxtools::format_engr(density_engr[do_format])
除了 density_engr[do_format]
之外,还有其他方法可以进行索引,但请注意:您要确保得到一个数据帧作为结果,而不是提取列。