r - 如何绘制只有足够数据的图?
问题描述
我正在处理一个大型的野生动物重量和大小数据集,我按日期(第 1 季、第 2 季等)将其分成较小的部分。我编写了一个函数来在 ggplot2 中为每只动物创建图表,但有些动物被捕获的频率太低,以至于它们的数据基本上没有意义。
如何更改此功能以仅绘制在给定子集中出现超过 3 或 4 次的动物?
这是我拥有的功能:
individual_graph <- function(animal_number){
a_plot <- ggplot(data=animal_number, aes(x=Date, y=Weight)) +
geom_point() +
theme_bw() +
ggtitle(animal_number$Number)+
NULL
return(a_plot)
}
这是我用于生成图表的 for 循环:
graph_list <- list(NULL)
for(animal_id in (unique(season_1$Number))){
a <- individual_graph(season_1[Number==animal_id])
graph_list <- c(graph_list, list(a))
}
plot_list
解决方案
table(animal_number)
告诉您哪种动物被看到了多少次(按动物编号排序)。
seen3times<-sort(unique(animal_number))[tabulate(factor(animal_number))>3]
将为您提供至少已被看到 3 次的所有动物的唯一编号,然后使用
data[which(animal_number==seen3times)]
应该相应地过滤您的数据
推荐阅读
- mysql - 查找从未处理过某个项目的部门
- asp.net-core - 如何解决发布 dot net core Identity Server4 Web 应用程序时出现 HTTP 500 错误
- javascript - P5.js 不会自动清除画布
- python - 全局变量保持不变
- scripting - 获取字符串中的每个数字并在 TCL/tk 中进行比较
- c++ - std::optionals 上的数学?
- java - 如何为每个用户设置第二个自动增量列?
- java - 在按钮单击时将字符串值从 FragmentContainerView 传递给 Activity
- regex - 正则表达式 - 在第二个周期后添加一个零
- azure - 在 Azure DevOps 项目 Repos 中未显示