2017-03-15 27 views
0

三個表我需要參加3個表:加入使用查找

Table1:(5325 x 6) 
POLICY YEAR Prem Loss LRtot LRPP 
217570 2008 3651 0  0  0 
. 
. 


Table2: (216 x 1) 
POLICY 
217570 
251440 
290102 
. 
. 
655825 

Table3: (11551 x 4) 
YEAR STATE POLICY DIST_MIL 
2011 TN 217570 11.0 
2013 TN 217570 10.7 
2016 TN 217570 10.7 
. 
. 
. 

我想獲得這樣的輸出(DIST_MIL爲2016值):

Output Table: 
POLICY YEAR Prem Loss LRtot LRPP DIST_MIL 
217570 2008 3651 0  0  0 10.7 

我怎樣才能做到這一點[R:?

+0

有很多方法來連接表萬千。搜索論壇。對於三路加入,大多數需要加入1和2,然後獲得結果並加入3. – akaDrHouse

回答

0

一個dplyr解決方案:

library(dplyr) 
final3_join <- Table1 %>% inner_join(Table2,by="POLICY") %>% 
inner_join(Table3,by="POLICY") 

如果你只想要那名在表1的記錄是在最後的表,然後用left_join替換INNER_JOIN。

根據您的評論進行了修改。您可以在上次加入的過程中過濾數據。

final3_join <- Table1 %>% inner_join(Table2,by="POLICY") %>% 
    inner_join(filter(Table3,YEAR==2016),by="POLICY") 

注:如果今年被定義爲字符,那麼你會把它放進引號,「2016」

+1

感謝Frank的反饋。 – akaDrHouse

+0

感謝您的快速回復。這是正確的,但是如何修改代碼以便與表3中的2016 DIST_MIL合併。以上代碼結果顯示了同一策略的所有三個距離值。我只需要2016年的DIST_MIL值。 – user3408139

+0

@ user3408139我已經爲您修改了我的回覆。 – akaDrHouse