R中两个变量的滤波
我有一个数据集,有57个位置“家”,每个位置我有10个其他位置“气象站”,按距离以英里为单位排列。然后我有一个列,有一个象限,气象站在房子周围,所以1-4。 我试着用R写代码,取最近的气象站和它的象限,然后在另一个象限中取下一个最近的,在另一个象限中取第三个。因此,我有一个三角形,基于最近的站R中两个变量的滤波,r,R,我有一个数据集,有57个位置“家”,每个位置我有10个其他位置“气象站”,按距离以英里为单位排列。然后我有一个列,有一个象限,气象站在房子周围,所以1-4。 我试着用R写代码,取最近的气象站和它的象限,然后在另一个象限中取下一个最近的,在另一个象限中取第三个。因此,我有一个三角形,基于最近的站 loc station nearness quadrant 1 Abilene-KS SALINA MUNICIPAL AIRP
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
使用
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
loc车站近距离象限
1阿比林KS萨利纳市机场1 2
2阿比林KS马歇尔陆军机场2 1
3阿比林KS曼哈顿地区机场4 3
4阿奇博尔德OH萨利纳市机场1 2
5阿奇博尔德OH马歇尔陆军机场2 1
6 Archbold OH多用途系列3 3
因此,对于第一个loc,您将保留第1、2和4行,对于第二个loc,您将保留第11、12和13行,对吗?是的,这是正确的,您可以粘贴您需要获得的预期结果吗?@Frank我认为distinct只保留了指定的变量,但我刚刚看到您可以指定。keep_all=T,因此我将编辑我的答案。谢谢好吧,这是有道理的,我不知道托普的事。谢谢你的帮助!