其中一个包括所有感兴趣的道路的TMC#。第二个包括在特定州的每个单独的道路上发生的旅行时间。我想使用第一个表进行过滤,以便只保留与那些感兴趣的道路相对应的记录。
df
id link tmc
1 1 23402444 122P06466
2 2 23402487 122P06476
3 3 23402488 122N06476
4 4 23402493 122N06477
5 5 23402555 122P06454
6 6 23402557 122N06453
DF2
id tmc epoch tt
1 1 108N04625 1182014 163
2 2 108N04625 1182014 103
3 3 108N04625 1182014 73
4 4 108N04625 1172014 254
5 5 108N04625 1172014 224
我试图使用过滤器
Data2Filter&lt ;-(Data2,TMC == Data2 $ TMC)
但我得到的任何一件物品都找不到或者我的尺寸不匹配(Data1中有大约8000条记录,数据2中有大约14000000条记录,因为TMC上可以有多个旅行时间(TT),但是我这样做了。 m只对在与Data1中的列表对应的TMC上发生的那些感兴趣。我对MatLab非常熟悉,但不幸的是,目前我只提供R Studio,对此软件一无所知。这些表也作为cvs文件加载,如果这有任何区别。
答案 0 :(得分:3)
df2$tmc[1] <- df$tmc[1]
df2
id tmc epoch tt
1 1 122P06466 1182014 163
2 2 108N04625 1182014 103
3 3 108N04625 1182014 73
4 4 108N04625 1172014 254
5 5 108N04625 1172014 224
许多选项
subset(df2, tmc %in% df$tmc)
df2[df2$tmc %in% df$tmc, ]
library(dplyr)
fi <- filter(df2, tmc %in% df$tmc)
fi
id tmc epoch tt
1 1 122P06466 1182014 163
超大型数据集
library(data.table)
dt <- data.table(df)
dt2 <- data.table(df2)
subset(dt2, tmc %in% dt$tmc)
This可能是关于子集性能的有用主题