我有一个大型数据库,我想从中创建箱线图:
数据:测试医院
Y:测试结果(%(:共1500个样品
X1:不同的年份(2011-2017(
x2:不同的医院(30个不同的医院名称(
不同医院的样本量差异很大,因此在某些情况下,数据实际上太少,无法说明数据。因此,我想从箱线图中排除样本大小为 <15 的所有医院。
因此,我想做的是创建一个额外的行,其中包含医院采样次数的频率,并使用该行来排除我的箱线图的低样本量。
正如你可能得到的那样,我对R很陌生,所以对于大多数人来说,这可能是一个非常简单的问题......我真的很想要答案...!
非常感谢你:)
尝试使用dplyr
包。group_by
有助于区分医院,mutate
计数,filter
选择至少有15个观察结果的医院。%>%
是用于连接函数的管道符号。
install.packages(dplyr)
library(dplyr)
test.hospital.filtered <- group_by(test.hospital, x2) %>%
mutate(sampled_count = n()) %>%
filter(sampled_count >= 15)
现在使用ggplot
创建箱线图。年份在 x 轴上,测试结果在 y 轴上,显示过滤后的医院。
install.packages(ggplot)
library(ggplot)
ggplot(test.hospital.filtered, aes(x = x1, y = y, fill = x2)) +
geom_boxplot()