如何从向量中百分比构成 TRUE?

How can I percentage makeup of TRUE from a vector?

提问人:Antonio 提问时间:12/13/2022 最后编辑:Antonio 更新时间:12/13/2022 访问量:38

问:

这是用于派生我问题中第一个表的代码。

JH %>% group_by(ATT_ID, CAR=="B") %>%
summarize(count = n(), .groups = "drop")
ATT_ID 汽车 == “B” 计数
1
1
3
5
2
4
8
4

我怎样才能让上面的表格看起来像:

ATT_ID “B”的百分比
0%
100%
37.5%
0%
100%
67%
  • 请注意,一些 ID 被看到两次,以显示 FALSE 和 TRUE 的存在,而其他 ID 出现一次,以显示只有一个或另一个的存在。

谢谢

SQL R 数据操作

评论

0赞 Jon Spring 12/13/2022
JH %>% group_by(ATT_ID) %>% summarize(pct_b = mean(CAR == "B")
0赞 Antonio 12/13/2022
我更新了帖子。我打算发布这些新表格。我道歉!

答:

1赞 langtang 12/13/2022 #1

您可以执行以下操作:

dt %>%
  group_by(ATT_ID) %>%
  summarize(perc = sprintf("%3.1f%%", 100*sum(Count*`CAR =="B"`)/sum(Count)))

输出:

# A tibble: 6 × 2
  ATT_ID perc  
  <chr>  <chr> 
1 FIVE   100.0%
2 FOUR   0.0%  
3 ONE    0.0%  
4 SIX    66.7% 
5 THREE  37.5% 
6 TWO    100.0%

输入:

structure(list(ATT_ID = c("ONE", "TWO", "THREE", "THREE", "FOUR", 
"FIVE", "SIX", "SIX"), `CAR =="B"` = c(FALSE, TRUE, TRUE, FALSE, 
FALSE, TRUE, TRUE, FALSE), Count = c(1, 1, 3, 5, 2, 4, 8, 4)), class = c("tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -8L))

评论

0赞 Antonio 12/13/2022
这次我发布了正确的表格。我很抱歉!
0赞 r2evans 12/16/2022
@Antonio,Langtang 的代码会产生所需的输出(尽管不是按您的顺序,但这是细枝末节)。在此代码中,我唯一需要更改的是替换为(因为它可以在您的数据中找到),但除此之外,它会在您的数据上正确执行。如果有问题,你应该编辑你的OP,并告知为什么这个代码不起作用。`CAR =="B"``CAR == B`