用“:”与“>或<”

时间:2018-09-07 16:46:56

标签: r filter dplyr

我有一个一直在玩的婴儿名字数据集。我正在使用dplyr筛选在千禧年出生的婴儿。因此,这将是1985年至2005年(包括1985年和2005年)出生的任何婴儿。但是,当我使用dplyr时,我注意到根据过滤器参数的表达方式,会得到不同的过滤结果。

trial<-filter(babynames, year==1985:2005)
trial2<-filter(babynames, year >1984 & year<1986)

trial1给了我约70,000个结果,而试用2则给了我大约两倍的结果(〜154,000)。这两种过滤形式之间有区别吗?对我来说,他们应该给我同样的输出?我觉得我在这里缺少什么。

1 个答案:

答案 0 :(得分:1)

据我所知,1985:2005不会检查该范围内的年份。
-很可能在1985年排在第一行,在1986年排在第二年,在1987年排在第三年,依此类推...
-直到第21行与2005年进行核对,然后再回收这些值。意思是,第22行用1985检查,第23行用1986检查,依此类推...

希望,这可以回答您的问题

P.S。 -您可以通过以下方式使用%in%运算符检查范围:

trial<-filter(babynames, year %in% 1985:2005)