2017-08-07 77 views
0

我有一個數據集有57個位置「家」,每個位置我有10個其他位置的「氣象站」,以近英里排列。然後我有一個有氣象站在四周的房屋周圍的象限。 我想在R中編寫代碼,它需要最近的氣象站和它的象限,然後在不同的象限中選取下一個最接近的,第三個在不同的象限中。所以我有一個基於最近站點的三角形。在R中的兩個變量過濾

loc   station     nearness quadrant 
1 Abilene-KS SALINA MUNICIPAL AIRPORT  1   2 
2 Abilene-KS MARSHALL ARMY AIRFIELD   2   1 
3 Abilene-KS MULTI PURPOSE RANGE   3   1 
4 Abilene-KS MANHATTAN REGIONAL AIRPORT  4   3 
5 Abilene-KS MANHATTAN 6 SSW    5   1 
6 Abilene-KS BLOSSER MUNICIPAL AIRPORT  6   4 
7 Abilene-KS NEWTON-CITY-COUNTY AIRPORT  7   1 
8 Abilene-KS EMPORIA MUNICIPAL AIRPORT  8   2 
9 Abilene-KS HUTCHINSON MUNICIPAL ARPT  9   4 
10 Abilene-KS COLONEL JAMES JABARA ARPT  10  3 
11 Archbold-OH SALINA MUNICIPAL AIRPORT  1   2 
12 Archbold-OH MARSHALL ARMY AIRFIELD   2   1 
13 Archbold-OH MULTI PURPOSE RANGE   3   3 
14 Archbold-OH MANHATTAN REGIONAL AIRPORT  4   1 
15 Archbold-OH MANHATTAN 6 SSW    5   4 
16 Archbold-OH BLOSSER MUNICIPAL AIRPORT  6   4 
17 Archbold-OH NEWTON-CITY-COUNTY AIRPORT  7   2 
18 Archbold-OH EMPORIA MUNICIPAL AIRPORT  8   1 
19 Archbold-OH HUTCHINSON MUNICIPAL ARPT  9   3 
20 Archbold-OH COLONEL JAMES JABARA ARPT  10  2 

我想我可以說,我有一些代碼來說明我已經試過,但一切都已經得到了我無處使我迷路了。有任何想法嗎?

對於這兩個位置,我想與

loc   station     nearness quadrant 
1 Abilene-KS SALINA MUNICIPAL AIRPORT  1   2 
2 Abilene-KS MARSHALL ARMY AIRFIELD   2   1 
3 Abilene-KS MANHATTAN REGIONAL AIRPORT  4   3 
4 Archbold-OH SALINA MUNICIPAL AIRPORT  1   2 
5 Archbold-OH MARSHALL ARMY AIRFIELD   2   1 
6 Archbold-OH MULTI PURPOSE RANGE   3   3 
+0

所以對於第一個loc將保留行1,2和4,對於第二個loc行11,12和13,這是正確的嗎? – Lamia

+0

是的,這是正確的 – Jeffkrop

+0

你能粘貼你需要得到的預期結果嗎? – Onyambu

回答

1

使用dplyr新的數據幀,你可以這樣做:

library(dplyr) 
df %>% 
distinct(loc,quadrant,.keep_all=T) %>% 
group_by(loc) %>% 
top_n(-3,nearness) 

這將返回:

  loc     station nearness quadrant 
     <chr>      <chr> <int> <int> 
1 Abilene-KS SALINA MUNICIPAL AIRPORT  1  2 
2 Abilene-KS  MARSHALL ARMY AIRFIELD  2  1 
3 Abilene-KS MANHATTAN REGIONAL AIRPORT  4  3 
4 Archbold-OH SALINA MUNICIPAL AIRPORT  1  2 
5 Archbold-OH  MARSHALL ARMY AIRFIELD  2  1 
6 Archbold-OH  MULTI PURPOSE RANGE  3  3 
+1

@Frank我認爲鮮明的只保留指定的變量,但我剛剛看到,你可以指定.keep_all = T,所以我會編輯我的答案。謝謝! – Lamia

+0

好吧,這是有道理的,我不知道top_n。謝謝您的幫助! – Jeffkrop