我在解析数据集时遇到问题,我阅读了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