我正在处理大型的野生动物体重和大小数据集,我按日期将其分成较小的部分(第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
答案 0 :(得分:2)
table(animal_number)
告诉您看过哪种动物多少次(按animal_number排序)。
seen3times<-sort(unique(animal_number))[tabulate(factor(animal_number))>3]
将为您提供至少3次被查看过的所有动物的唯一动物编号,然后使用
data[which(animal_number==seen3times)]
应相应地过滤数据