2016-06-07 15 views
0

Kann mir jemand helfen zu verstehen, warum das nicht funktioniert, wie ich denke, dass es sollte?Auswählen einer Teilmenge eines großen SpatialPolygonsDataFrame mit einem Maskierungsvektor

Ich habe ein 1000+ Element SpatialPolygonsDataFrame Objekt (d. H. Von sp) und ich würde es gerne auf einen Vektor von 20 zufälligen Elementen aus dem Ganzen schneiden.

n <- dim(geo1) # where geo1 is a big SpatialPolygonsDataFrame object 
n <-n [1] 
set.seed(1) # set random number generator seed for repeatability. 
new_n=20 # Choose 20 random polygons 
mask <- sample(0:n,new_n,replace=F) # trim size down from n to new_n polygons. 
geo1small <- SpatialPolygonsDataFrame(Sr = [email protected][mask], data = [email protected][mask,], match.ID = TRUE) 

Ergebnis:

Error in SpatialPolygonsDataFrame(Sr = [email protected][mask], data = [email protected][mask, : 
trying to get slot "polygons" from an object of a basic class ("list") with no slots 
+1

Sie direkt das Objekt durch Index-Untersatz kann: 'geo1small <- geo1 [Maske]' – rcs

+0

Tut mir leid, ich weiß nicht, wie ich deinen Kommentar als die richtige "Antwort" markieren soll, und mir ist klar, dass meine Frage, wie sie gestellt wird, für andere kaum hilfreich sein wird. Nicht sicher, ob ich die Antwort richtig gehandhabt habe; Bitte geben Sie an, wenn ich etwas ändern sollte. Danke noch einmal. – Kevin

+0

Wenn dies Ihre Frage beantwortet, können Sie meine Antwort unten als [akzeptiert] markieren (http://meta.stackexchange.com/a/5235) – rcs

Antwort

2

Sie direkt räumliche Objekte von Index-Untersatz kann:

geo1small <- geo1[mask, ] 
Verwandte Themen