说我有如下数据
A <- c(1,1,1,2,2,2,3,3,3)
B <- c(1,0,0,1,0,0,1,0,0)
C <- c(8,7,6,8,7,8,9,9,11)
D <- data.frame(A,B,C)
D
library(dplyr)
E <- D %>%
group_by(B) %>%
filter(abs(diff(C)) <= 1)
Run Code Online (Sandbox Code Playgroud)
删除这些情况,以便删除黄色显示

换句话说,对于每个a身份,当我们评估b=0相对于b=1,c超过差异1的任何值.
根据描述,我认为你想要这样的东西:
D %>%
group_by(A) %>%
filter(abs(C - C[B == 1]) <= 1)
#Source: local data frame [7 x 3]
#Groups: A
#
# A B C
#1 1 1 8
#2 1 0 7
#3 2 1 8
#4 2 0 7
#5 2 0 8
#6 3 1 9
#7 3 0 9
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
539 次 |
| 最近记录: |