首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在prop.table的输出中追加% sign

在prop.table的输出中追加% sign
EN

Stack Overflow用户
提问于 2012-02-08 07:36:31
回答 4查看 8.3K关注 0票数 8

为了在Sweave中使用,我尝试在prop.table的输出中附加%符号。我尝试的代码如下:

代码语言:javascript
运行
复制
m <- matrix(1:4,2)
dimnames(m) <- list(c("A", "B"), c("C", "D"))
prop.table(m,1)*100

         C        D
A 25.00000 75.00000
B 33.33333 66.66667


paste(round(prop.table(m,1)*100, 3), "%", sep = "")
[1] "25%"     "33.333%" "75%"     "66.667%"


paste(sprintf("%.1f", prop.table(m,1)*100), "%", sep = "")
[1] "25.0%" "33.3%" "75.0%" "66.7%"

使用paste会将类从矩阵更改为字符。如果有人能给我正确的解决方案,我将不胜感激。谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-08 07:42:15

大多数设计用于处理向量的函数也接受矩阵,但返回的是向量而不是矩阵:pastesprintf等。您可以使用apply,它将返回一个矩阵。

代码语言:javascript
运行
复制
apply( 
  prop.table(m,1)*100, 
  2, 
  function(u) sprintf( "%.1f%%", u ) 
)
票数 6
EN

Stack Overflow用户

发布于 2012-02-08 07:57:04

另一种解决方案可能是替换矩阵的内容:

代码语言:javascript
运行
复制
m2 <- m
m2[] <- sprintf("%.1f%%",round(prop.table(m,1)*100, 3))
m2
#   C       D      
# A "25.0%" "75.0%"
# B "33.3%" "66.7%"
票数 8
EN

Stack Overflow用户

发布于 2018-06-28 00:15:37

有一个名为janitor的包,它解决了prop.table()“格式为百分比”的问题。这里有一个包的链接:https://github.com/sfirke/janitor

这里有一个来自github页面的使用示例。

代码语言:javascript
运行
复制
roster %>%
  tabyl(employee_status, full_time) %>%
  adorn_totals("row") %>%
  adorn_percentages("row") %>%
  adorn_pct_formatting() %>%
  adorn_ns() %>%
  adorn_title("combined")
#>  employee_status/full_time         No        Yes
#>             Administration   0.0% (0) 100.0% (1)
#>                      Coach 100.0% (2)   0.0% (0)
#>                    Teacher  33.3% (3)  66.7% (6)
#>                      Total  41.7% (5)  58.3% (7)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9185745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档