首页 > 解决方案 > R:查找 NA 值之间的最大行数

问题描述

我正在使用一个数据集,其中包含一小群北极熊的 GPS 位置。对于每只熊,理论上应该每 4 小时有一个位置,但不幸的是,无线电项圈并不总是能完美工作,而且我的数据中存在空白。

我的目标是生成一个 csv,其中包含每个熊的间隙之间的最大位置数。 例如,如果熊的数据由 100 个位置组成,然后有一个间隙,然后是 50 个位置,我只想对最终 csv 中的前 100 个位置进行子集化。

这是生成我将使用的数据集类型的代码:

bears<-as.character(c(rep("bear1",times=5),rep("bear2",times=5)))
time<-c("2007-09-08 13:00:00","NA","2007-09-08 21:00:00","2007-09-09 1:00:00","NA","NA","2007-10-09 17:00:00","2007-10-09 1:00:00","NA","2007-10-09 9:00:00")
bear.data<-data.frame(bears,time)

在哪里:

任何帮助,将不胜感激!!

标签: rdataframedistancenabetween

解决方案


bear.data <- data.frame(bears, time) %>%
  mutate(time = ymd_hms(time),
         helper = floor_date(time, unit = "year"),
         seq = rleid(helper)) %>%
  filter(!is.na(helper)) %>%
  group_by(bears, seq) %>%
  add_tally() %>% ungroup() %>%
  group_by(bears) %>%
  slice_max(n)

推荐阅读