R/GIS:按坐标划分的数据帧子集
可能重复:R/GIS:按坐标划分的数据帧子集,r,gis,R,Gis,可能重复: 我有一个SpatialLinesDataFrame类的数据帧“rivers”摘要(河流)给出: > summary(rivers) Object of class SpatialLinesDataFrame Coordinates: min max x 66.33333 161.03750 y -10.45208 55.80208 Is projected: NA proj4string : [NA] Data attributes:
我有一个
SpatialLinesDataFrame
类的数据帧“rivers”<代码>摘要(河流)给出:
> summary(rivers)
Object of class SpatialLinesDataFrame
Coordinates:
min max
x 66.33333 161.03750
y -10.45208 55.80208
Is projected: NA
proj4string : [NA]
Data attributes:
ARCID FROM_NODE TO_NODE Sub_Bas Maj_Bas To_Bas Sub_Name
Min. : 6087 Min. : 6127 Min. : 6227 Min. : 1001 Min. : 1.00 Min. : -999 Tarim He : 1584
1st Qu.:35584 1st Qu.:37019 1st Qu.:36993 1st Qu.: 5017 1st Qu.: 5.00 1st Qu.: -888 Ch'ing-hai Hu : 1323
Median :50895 Median :53059 Median :53100 Median :13006 Median : 13.00 Median : 1050 Jo Shui / Gaxun Nur / Sogo Nur: 1301
Mean :48954 Mean :51014 Mean :51024 Mean :20846 Mean : 21.41 Mean :12745 Gobi1 : 1246
3rd Qu.:63450 3rd Qu.:66032 3rd Qu.:66049 3rd Qu.:36043 3rd Qu.: 36.00 3rd Qu.:16006 Gobi2 : 1074
Max. :75961 Max. :80067 Max. :80068 Max. :73006 Max. :29055.00 Max. :69014 Qagan Nur : 956
(Other) :42503
Maj_Name Sub_Area Maj_Area Strahler
Gobi Interior :10130 Min. : 0 Min. : 0 Min. :1.000
Amur Basin : 5706 1st Qu.: 15409 1st Qu.: 413869 1st Qu.:1.000
Tarim Interior : 4919 Median : 31063 Median :1584557 Median :1.000
Yangtze Basin : 3716 Mean : 84786 Mean :1269122 Mean :1.781
Ganges / Brahmaputra Basin: 3063 3rd Qu.: 88229 3rd Qu.:2079286 3rd Qu.:2.000
Plateau of Tibet Interior : 2104 Max. :620574 Max. :2165616 Max. :7.000
(Other) :20349
我想通过坐标将其子集,这样x在70,80之间,y在20,30之间。使用
maptools
软件包有没有办法做到这一点?没有,使用maptools
软件包没有办法做到这一点。您可以手动分解空间对象以进行剪裁,但这会使跟踪原始拓扑变得复杂,而且只需使用基本R函数和sp
包即可。更好的做法是在rgeos
中使用适合此任务的特定于几何体的函数 这个问题和你之前的问题有何不同?安德里。。。对不起,如果这是相同的。我对此很陌生,对术语和格式感到困惑。如果你认为这是一篇转载文章,如果你从原始文章中得到答案,我会删除它。用rgeos做吧,这已经做了所有艰苦的工作了。。。我试过了,但当我这么做的时候:newdata=gIntersection(polygon,df),其中df属于类SpatialLinesDataFrame,newdata只来自类SpatialLines,这意味着我不能用writeSpatialShape()导出它。因此,请专注于实际问题,并报告您在问题本身中尝试的内容,将SpatialLines对象转换为SpatialLinesDataFrame是非常简单的SpatialLinesDataFrame(newdata,data.frame)(dummy=rep(1,length(newdata@lines))))或者类似的。就目前而言,这个问题对你或其他人都没有帮助,真正的答案是在评论中出来的,而不是它是如何工作的。