gpt4 book ai didi

r - 如何将 scales::percent 或 scales::percent_format() 应用于 R 中的 prop.table 以将数字格式化为百分比

转载 作者:行者123 更新时间:2023-12-05 09:21:40 27 4
gpt4 key购买 nike

考虑以下示例:

tab <- table(mtcars$vs, mtcars$cyl, dnn = c("vs", "cylinder"))
prop.table(tab)
# cylinder
# vs 4 6 8
# 0 0.03125 0.09375 0.43750
# 1 0.31250 0.12500 0.00000

round(prop.table(tab)*100, 1)
# cylinder
# vs 4 6 8
# 0 3.1 9.4 43.8
# 1 31.2 12.5 0.0

期望的输出:

#    cylinder
# vs 4 6 8
# 0 3.1% 9.4% 43.8%
# 1 31.2% 12.5% 0.0%

scales::percent(round(prop.table(tab))) 工作,因为 plyr::round_any( ) 应用于 table 类的对象。

我知道我缺少一个简单的解决方法。或者也许一个简单的包装器或对 plyr::round_any() 的拉取请求可以为每个人解决这个问题?

最佳答案

pt <- percent(c(round(prop.table(tab), 3)))
dim(pt) <- dim(tab)
dimnames(pt) <- dimnames(tab)

这应该有效。 c 在这里使用是因为它具有将表格或矩阵转换为向量的特性。

使用 sprintf 的替代方法:

pt <- sprintf("%0.1f%%", prop.table(tab) * 100)
dim(pt) <- dim(tab)
dimnames(pt) <- dimnames(tab)

如果您希望表格不带引号,那么您可以使用例如:

print(pt, quote = FALSE, right = TRUE)

关于r - 如何将 scales::percent 或 scales::percent_format() 应用于 R 中的 prop.table 以将数字格式化为百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30804430/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com