首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算列值平均值的困难性

计算列值平均值的困难性
EN

Stack Overflow用户
提问于 2022-09-27 16:54:46
回答 2查看 46关注 0票数 1

我试图计算每个外科专业的手术取消的平均值。这是我的数据集:

代码语言:javascript
运行
复制
> dput(dt)
structure(list(Service = c("C", "C", "El", 
"Ga", "Ga", "Ge", "Ge", 
"Gy", "Gy", "Gyny", "He", 
"He",
    binary = c("Cancelled", "Not Cancelled", "Cancelled", "Cancelled", 
    "Not Cancelled", "Cancelled", "Not Cancelled", "Cancelled", 
    "Not Cancelled", "Not Cancelled", "Cancelled", "Not Cancelled", 
    "Cancelled", "Not Cancelled", "Cancelled", "Not Cancelled", 
    "Cancelled", "Not Cancelled", "Cancelled", "Cancelled", "Not Cancelled", 
    "Cancelled", "Not Cancelled", "Cancelled", "Not Cancelled", 
    "Cancelled", "Not Cancelled", "Cancelled", "Not Cancelled", 
    "Cancelled", "Not Cancelled", "Cancelled", "Not Cancelled", 
    "Cancelled", "Not Cancelled"), n = c(338L, 38L, 10L, 14L, 
    6L, 69L, 12L, 31L, 11L, 1L, 3L, 1L, 39L, 6L, 3L, 1L, 113L, 
    9L, 2L, 74L, 15L, 1L, 1L, 3L, 12L, 1L, 1L, 2L, 2L, 3L, 
    13L, 0L, 12L, 5L, 4L)), row.names = c(NA, -35L), groups = rows = structure(list(1:2, 3L, 4:5, 6:7, 8:9, 
        10L, 11:12, 13:14, 15:16, 17:18, 19L, 20:21, 22:23, 24:25, 
        26:27, 28:29, 30:31, 32:33, 34:35), ptype = integer(0), class = c("vctrs_list_of", 
    "vctrs_vctr", "list"))), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -19L), .drop = TRUE), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"))

我试过这个:

代码语言:javascript
运行
复制
dt.1 <- dt %>% 
  group_by(Service) %>% 
  summarise(`Cancelled` = mean(binary == "Cancelled")*100, 
            `Not Cancelled` = mean(!binary == "Cancelled")*100)

但有很奇怪的价值观。

EN

Stack Overflow用户

发布于 2022-09-27 18:07:16

在R基,你会做:

代码语言:javascript
运行
复制
prop.table(xtabs(n~.,dt), 1) * 100
                                      binary
Service                                 Cancelled Not Cancelled
  Cardiac                               89.893617     10.106383
  Electrophysiology                    100.000000      0.000000
  Gastroenterology                      70.000000     30.000000
  General                               85.185185     14.814815
  Gynecology                            75.609756     24.390244
  Gynecology Oncology                    0.000000    100.000000
  Hepatology                            75.000000     25.000000
  Interventional Radiology              86.666667     13.333333
  Neuroradiology                        75.000000     25.000000
  Neurosurgery                          92.622951      7.377049
  Ortho Spine                          100.000000      0.000000
  Orthopedics                           83.146067     16.853933
  Otolaryngology Head and Neck Surgery  92.307692      7.692308
  Plastics                              75.000000     25.000000
  Pulmonary                             50.000000     50.000000
  Thoracic                              91.666667      8.333333
  Transplant                            69.767442     30.232558
  Urology                               85.365854     14.634146
  Vascular                              93.442623      6.557377

如果您需要返回一个data.frame,只需将上面的代码包装为:

代码语言:javascript
运行
复制
as.data.frame.matrix(prop.table(xtabs(n~.,dt), 1)*100)
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73871237

复制
相关文章

相似问题

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