2016-12-02 46 views
-2

的範圍值從數據幀的一個子集,我有以下數據(在一個更大的範圍內):我需要過濾我的數據,並創建基於緯度和經度

我如何能夠過濾我的數據基於一系列緯度,經度simultaneusly說的拉提> = 52.46和< = 52.50和經度> = -1.87和< = -1.92

enter image description here

+0

您能否澄清您詢問的軟件? –

+0

對不起,在R –

+0

請看看R的文檔:http://stackoverflow.com/documentation/r/438/data-frames/2047/subsetting-rows-and-columns-from-a-data- frame#t = 201612041001004962743 – scoa

回答

0

下面的代碼應該可以工作。

如果您收到錯誤object of type 'closure' is not subsettable,那是因爲您需要重新命名緯度列。

#create a reproducible data.frame 
df = read.table(text ='ID Lat Long 
1  124 76 
2  234 53 
3  229 11 
4  268 22 
5  150 44 
6  190 34 
7  211 87 
8  152 21 
9  300 98 
10 186 19', header = TRUE) 

#subset the data.frame 
df_sub = subset(df, Lat >= 150 & Lat <= 299 & Long >= 22 & Long <= 97) 

#output 
> df_sub 
ID Lat Long 
2 2 234 53 
4 4 268 22 
5 5 150 44 
6 6 190 34 
7 7 211 87 
0

我想你應該有一個布爾創建另一列值,如果相應的行通過條件,則將其設置爲1;否則將其設置爲0。

然後使用VLOOKUP函數僅過濾那些行WICH傳遞的條件(具有新列值= 1)

+1

我需要在R中完成,否則在Excel中它會像年齡一樣 –

0

假設你通過4存儲在數據幀DF的數據,並且取值範圍爲1是您的緯度和經度限制 -

df_sub <- df[df$latitude >= range1 & df$latitude <= range2 & 
      df$longitude >= range3 & df$longitude <= range4,] 
+0

對不起,但我是R新手,請耐心等待。它給了我這個錯誤:df $ latitude中的錯誤:'closure'類型的對象不可子集 –

相關問題