使用dplyr仅保留符合特定条件的行

时间:2015-04-27 13:17:58

标签: r dplyr

我在解析数据集时遇到问题,我阅读了dplyr插图并希望使用航班数据集来模拟我的问题。

现在假设我想用以下条件解析这个数据集;

此数据集中共有510个唯一的air_time;假设我和我有一组200个不同的air_time值,并且想要解析数据集,以便我只得到air_time值与我拥有的200个不同值之一匹配的情况。

我试过了;

my200airtime <- head(flights$air_time,200)
filter(flights,air_time==my200airtime)
#this gave me a dataframe with 1458 different rows but thats too low and is for sure not correct due to the mistake i am making.

简单来说,我会说任务是解析数据,使其包含所有观察值,其中air_time列中的值与200个air_time值中的一个匹配。

如果我必须将它与只有5个不同的值匹配,我会使用像这样的代码

filter(flights,air_time==1|2|3|4|5)

但在这里我有200个不同的播出时间因此需要一些不同的方法,请建议

回答: 所以基于以下两个建议答案就是这个

#using the filter function in dplyr
library(nycflights13)
my200airtime <- data.frame(head(flights$air_time,200))
colnames(my200airtime) <- "air_time"
parsed_data1 <- filter(flights,air_time %in% my200airtime$air_time)
dim(parsed_data1)
#[1] 140827     16

#using semi_join function in dplyr
parsed_data2 <- semi_join(flights,my200airtime)
dim(parsed_data2)
#[1] 140827     16

0 个答案:

没有答案