【发布时间】:2009-10-17 02:24:16
【问题描述】:
我正在通过xtable 将数据帧输出到 html。我想在表格的几列中为数字添加逗号。在我自己进行粘贴破解之前,我想我会检查是否有内置的方法来做到这一点。
【问题讨论】:
我正在通过xtable 将数据帧输出到 html。我想在表格的几列中为数字添加逗号。在我自己进行粘贴破解之前,我想我会检查是否有内置的方法来做到这一点。
【问题讨论】:
您可能需要考虑使用formatC 转换列
> formatC(1:10 * 100000, format="d", big.mark=",")
[1] "100,000" "200,000" "300,000" "400,000" "500,000" "600,000"
[7] "700,000" "800,000" "900,000" "1,000,000"
【讨论】:
非常感谢 Jonathan Chang 的回答。 formatC 看起来是一个非常有用的功能。这激发了我阅读它的文档,其中我找到了prettyNum,结果证明这是我遇到的类似问题的一个非常优雅的解决方案。这是我在名为enrollment.summary 的数据框中为数字添加逗号的最小可行示例。
xtable(prettyNum(enrollment.summary,big.mark=","))
您也可以尝试使用函数参数“format.args”
## Demonstration of additional formatC() arguments.
print(fm1.table, format.args = list(big.mark = "'", decimal.mark = ","))
从这里
【讨论】:
这是一个迟到的答案,但您也可以使用scales::comma_format,如下所示:
library(scales)
values <- c(1000000.789, 8888.23)
comma_format(digits = 12)(values)
## [1] "1,000,000.789" "8,888.230"
对于整数值,您可以只使用逗号:
int_vals <- c(1234, 5678)
comma(int_vals)
## [1] "1,234" "5,678"
【讨论】:
data.frame 中有数据,您可能会将其保留为数字。您在什么情况下会导致问题?
dplyr 的示例可以添加列的字符串版本,如dplyr::tibble(A = c(1:5) * 1e6) %>% dplyr::mutate(A.as.String = scales::comma(A)) 或仅作为字符串输出,而无需修改数据框,如dplyr::tibble(A = c(1:5) * 1e6) %>% dplyr::mutate(A = scales::comma(A)) 跨度>
要格式化来自dplyr 的一些摘要,这里是样板代码:
df %>%
summarise(mu=mean(big_values),
min=min(big_values),
max=max(big_values)) %>%
mutate_each(funs(prettyNum(., big.mark=",")))
【讨论】: