Knitr html 格式问题
Knitr html formatting issue
数据框中的值在编织到 html 时发生了扭曲。当值少于 3 个字符时会发生这种情况,如下所示。 -5770 被正确转换为 (5770)
但 -577 导致 577.
并在其后附加了一个 li 元素。这是 knitr 的错误还是我的代码中的错误?
round_numeric <- function(num, prec = 0) {
return (round(as.numeric(num), prec))
}
format_numeric <- function(num, prec = 0) {
rounded_num <- abs(round_numeric(num, prec))
res <- format(rounded_num, nsmall = prec, big.mark = ',', trim = TRUE)
return (ifelse(num >= 0, res, sprintf('(%s)', res)))
}
col1 <- format_numeric(-5770)
col2 <- format_numeric(-577)
col3 <- format_numeric(300)
df <- t(data.frame(row1 = c(col1, col2, col3)))
df %>%
kable(align = 'c', format = 'html') %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
R-studio 中的正确输出:
在 html 文件中使用 knit 到 html 与 R-studio 的错误输出:
所以问题是 (577)
或括号内的任何整数被 pandocs 表达为有序列表。
为了防止这种情况,您可以在 YAML 中禁用它,只需添加以下内容。
output:
html_document:
md_extensions: "-fancy_lists"
数据框中的值在编织到 html 时发生了扭曲。当值少于 3 个字符时会发生这种情况,如下所示。 -5770 被正确转换为 (5770)
但 -577 导致 577.
并在其后附加了一个 li 元素。这是 knitr 的错误还是我的代码中的错误?
round_numeric <- function(num, prec = 0) {
return (round(as.numeric(num), prec))
}
format_numeric <- function(num, prec = 0) {
rounded_num <- abs(round_numeric(num, prec))
res <- format(rounded_num, nsmall = prec, big.mark = ',', trim = TRUE)
return (ifelse(num >= 0, res, sprintf('(%s)', res)))
}
col1 <- format_numeric(-5770)
col2 <- format_numeric(-577)
col3 <- format_numeric(300)
df <- t(data.frame(row1 = c(col1, col2, col3)))
df %>%
kable(align = 'c', format = 'html') %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
R-studio 中的正确输出:
在 html 文件中使用 knit 到 html 与 R-studio 的错误输出:
所以问题是 (577)
或括号内的任何整数被 pandocs 表达为有序列表。
为了防止这种情况,您可以在 YAML 中禁用它,只需添加以下内容。
output:
html_document:
md_extensions: "-fancy_lists"