gpt4 book ai didi

r - 确定未通过 dplyr - R 过滤的观察结果

转载 作者:行者123 更新时间:2023-12-04 10:09:27 25 4
gpt4 key购买 nike

在大型数据帧上使用 dplyr 时,我经常使用多个过滤参数。通常我可以将这些全部包含在一个 filter 参数中。但是,我喜欢 dplyr 允许您逐渐思考您对数据所做的事情的方式,因此这些过滤器通常可能在连续的行上。

但是,我通常不仅希望将这些连续过滤器产生的观察结果保留在新的 df 中,而且还希望保留原始 df 中未包含在单独的 df 中的观察结果。

例如这个数据集:

set.seed(123)
colors<- c( rep("yellow", 5), rep("blue", 5), rep("green", 5) )
shapes<- c("circle", "star", "oblong")
numbers<-sample(1:15,replace=T)
group<-sample(LETTERS, 15, replace=T)
mydf<-data.frame(colors,shapes,numbers,group)
mydf


colors shapes numbers group
1 yellow circle 5 X
2 yellow star 12 G
3 yellow oblong 7 B
4 yellow circle 14 I
5 yellow star 15 Y
6 blue oblong 1 X
7 blue circle 8 S
8 blue star 14 Q
9 blue oblong 9 Z
10 blue circle 7 R
11 green star 15 S
12 green oblong 7 O
13 green circle 11 P
14 green star 9 H
15 green oblong 2 D

在这里,假设我想按以下规则进行过滤(我知道以不同的顺序过滤可能更有意义,例如先按颜色,但为了论证):

mydf %>% 
filter (numbers <= 5 | numbers >= 12) %>%
filter (group=="X" | group =="Y" | group == "Z") %>%
filter (colors=="yellow")

返回:

  colors shapes numbers group
1 yellow circle 5 X
2 yellow star 15 Y

我的问题是,如何将过滤器未返回的原始“mydf”中的 13 个观察值保存到单独的 df 中?有可爱的 dplyr 方式吗?

最佳答案

我建议

sepDf <- setdiff(mydf, mydf.filtered)

关于r - 确定未通过 dplyr - R 过滤的观察结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25472926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com