我有一个包含以下信息的文本文件:
Grid Point Index, Latitude, Longitude, Cell
167, 0.000000, 9.432301, 1350
169, 0.000000, 9.544590, 1350
171, 0.000000, 9.656878, 1350
173, 0.000000, 9.769168, 1350
175, 0.000000, 9.881457, 1350
177, 0.000000, 9.993747, 1350
179, 0.000000, 10.106036, 1386
181, 0.000000, 10.218326, 1386
我想找到属于这个区域的所有lat和long
:lat 40.000 ,43.00 and long 0.000000, 3.902665.
好吧,我可以手动完成,但这需要花费很多时间。任何人都可以帮我构建这个功能
insert the zone of lat and long
然后会在文件中找到此区域内的所有lat-long以及相应的网格点索引和单元格。
阅读文件
das= read.table("C:\\Users\\lonlatnter.txt", sep=",",header=TRUE)
答案 0 :(得分:3)
foo <- function(df, latMin, latMax, longMin, longMax) {
return (
df[
df$Latitude >= latMin & df$Latitude <= latMax &
df$Longitude >= longMin & df$Longitude <= longMax,
c('Grid.Point.Index', 'Cell')
]
)
}
用法:
> foo(das, latMin=40, latMax=43, longMin=0, longMax=3.902665)
[1] Grid.Point.Index Cell
<0 rows> (or 0-length row.names)
> das[1,c(2,3)] <- c(41.0, 2)
> foo(das, latMin=40, latMax=43, longMin=0, longMax=3.902665)
Grid.Point.Index Cell
1 167 1350
答案 1 :(得分:1)
您拥有包含数据的data.frame X.您可以通过将条件写入索引括号来选择行:
X[ cond1 & cond2 & ..., ]
在你的例子中:
a <- 40
b <- 43
c <- 0
d <- 3.9
X[ X$Lat > a & x$Lat < b & X$Lon > c & X$Lon < d, ]