首页 > 解决方案 > 在绘图前整理出小于 10 的计数

问题描述

我住院治疗患有某些疾病的患者。这些住院患者中的每一个在出院时都有特定的发布代码。我现在必须在条形图中绘制每个发布代码的数量。我们只想在绘图之前整理出 < 10 的数字,这样它就不会太重了。

我最近开始使用 R 并且对它比较陌生。已经学到了很多东西,而且每天都有新的东西。我真的很喜欢将这些 ggplot-Statements 放在 1 行中而不为它创建新变量。所以我知道我可以通过制作 aplot <- count(cases, dismissCode, disease)并绘制它来做到这一点。我想做的只是在我的 ggplot-Statement 中整理出 x 轴上小于 10 的计数。

这是一些重现它的代码:

library(ggplot2)
library(data.table)

komorbList <- c("komorb", "no komorb")
dismissesList <- c("No", "Un", "Co", "Unco", "Le", "Im", "Om", "Lo", "We", "Ha", "Si", "Lp", "Ng", "Hf")

dt <- data.table(
  ID = c(1:200),
  komorb = "na",
  dimiss = "na"
)

for (i in 1:nrow(dt)) {
  dt[ID == i, komorb := sample(komorbList, size=1, replace = TRUE)]
}

for (i in 1:nrow(dt)) {
  dt[ID == i, dismiss := sample(dismissesList, size=1, replace = TRUE)]
}

count(dt, dismiss, komorb)

dt %>% ggplot(aes(dismiss, fill=stat(count))) + geom_bar(aes(y = stat(count)))

这应该至少创建一个包含一些必要内容的 data.table 和我打算如何做的条形图。

再说一遍。有没有办法在美学或其他方面过滤掉小于 10 的计数,而无需事先制作 count() 语句?对不起,如果它是一个简单的问题或什么的。只是还没有真正找到任何东西。

标签: rggplot2data.table

解决方案


我认为您应该在将数据提供给之前尽可能多地准备数据,ggplot()而不是在其中进行修改:这是一种在将数据提供data.table给之前准备和过滤数据的方法ggplot()

library(ggplot2)
library(data.table)
dt[, .(count = .N), by = dismiss][count >= 10] %>% 
  ggplot(aes(dismiss, fill=count, y = count)) +
  geom_bar(stat = "identity")

在此处输入图像描述


推荐阅读