如何过滤r中的数据帧?
问题描述:
我有类似下面的数据帧:如何过滤r中的数据帧?
id areaID time
325 10152 12:55
325 10221 11:57
325 10152 10:53
325 10152 08:35
525 10152 10:15
525 10221 16:45
725 10152 11:55
825 10152 12:06
925 10221 18:09
925 10221 19:45
935 10152 08:05
935 10221 10:05
我想只保留那些组,其中既areaID表示10152和10221是可用的。因此,它应该是这样的:
- ID areaID表示时间
- 325 10152 12:55
- 325 10221 11:57
- 325 10152 10:53
- 325 10152 08:35
- 525 10152 10:15
- 525 10221 16:45
- 935 10152 08:05
- 935 10221 10:05
任何人都可以帮我吗? TIA
答
如果您的数据存储为d
,那么使用dplyr
的分组过滤器应该这样做。
library(dplyr)
d %>%
group_by(id) %>%
filter(10152 %in% areaID & 10221 %in% areaID)
#> # A tibble: 8 x 3
#> # Groups: id [3]
#> id areaID time
#> <int> <int> <fctr>
#> 1 325 10152 12:55
#> 2 325 10221 11:57
#> 3 325 10152 10:53
#> 4 325 10152 08:35
#> 5 525 10152 10:15
#> 6 525 10221 16:45
#> 7 935 10152 08:05
#> 8 935 10221 10:05
谢谢乔纳森。但由于某种原因,它不会过滤我的数据。没有错误,甚至没有任何警告。 – Pasha
您的数据是否名为'd'? –
nope。 库(dplyr) Keep_files%>% group_by(deviceid)%>%filter(%areaId中的10152%和%areaId中的10221%) 这是我输入的内容。 – Pasha