如何绘制仅具有足够数据的图?

时间:2019-02-22 13:00:31

标签: r function for-loop ggplot2

我正在处理大型的野生动物体重和大小数据集,我按日期将其分成较小的部分(第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

1 个答案:

答案 0 :(得分:2)

table(animal_number) 

告诉您看过哪种动物多少次(按animal_number排序)。

seen3times<-sort(unique(animal_number))[tabulate(factor(animal_number))>3]

将为您提供至少3次被查看过的所有动物的唯一动物编号,然后使用

data[which(animal_number==seen3times)]

应相应地过滤数据