数据
id<-c("a","a","a","a","a","a","b","b","b","b","b","b") d<-c(1,2,3,90,98,100000,4,6,7,8,23,45) df<-data.frame(id,d)
我想检测每个“id”的观测间断。我期望的结果是获得一种不使用均值或中值作为参考来检测不连续性的方法。
cngwdvgl1#
您可以检查每组中一行与下一行之间的diff是否不等于1:
diff
library(dplyr) df %>% group_by(id) %>% mutate(dis = +(c(F, diff(d) != 1))) # A tibble: 12 × 3 # Groups: id [2] id d dis <chr> <dbl> <int> 1 a 1 0 2 a 2 0 3 a 3 0 4 a 90 1 5 a 98 1 6 a 100000 1 7 b 4 0 8 b 6 1 9 b 7 0 10 b 8 0 11 b 23 1 12 b 45 1
1条答案
按热度按时间cngwdvgl1#
您可以检查每组中一行与下一行之间的
diff
是否不等于1: