Ich habe einen Datenrahmen (df), der ein 100X100 Einheitsquadrat darstellt, und nachdem ich eine geographische Population wie diese (z= x+y, where x<-df$x, and y<-df$y)
erstellt habe, muss ich eine systematische Stichprobe der Größe n=100
daraus extrahieren. Wie kann ich es tun ?Wie zeichne ich eine systematische Stichprobe aus einer geografischen Population?
Antwort
Um eine systematische (IID) Probe aus einem Einheitsquadrat zu ziehen, hier ist eine Methode:
# set random seed for reproducibility
set.seed(123)
# create a 100X2 matrix of unit square observations
myUnitSquareSample <- cbind("x"=runif(100), "y"=runif(100))
in einem data.frame diese Probe stellen zusammen mit Ihrem z Variable:
df <- data.frame("x"=myUnitSquareSample[,"x"],
"y"=myUnitSquareSample[,"y"],
"z"=rowSums(myUnitSquareSample))
Wenn Sie bereits ein existierendes data.frame, df, haben, sagen wir von 10.000 Beobachtungen. Sie können die sample
Funktion verwenden, wie von @ kunal-puri vorgeschlagen, wie folgt:
# set random seed for reproducibility
set.seed(11111)
# choose the set of 100 rows
mySample <- sample(1:nrow(df), size=100)
# extract sampled observations from df
mySampled.df <- df[mySample,]
Es ist eine gute Idee, um die ausgewählten Gruppe von Zeilen in einem eigenen Vektor zu halten, falls Sie es weiter verwenden müssen in dein Skript.
eine gleichmäßig verteilte Probe zu extrahieren, gehen Sie folgendermaßen vor:
envelySpacedMat <- expand.grid(y=seq(0, 1, length.out=10),
x=seq(0, 1, length.out=10))
df <- data.frame("x"=envelySpacedMat[,"x"],
"y"=envelySpacedMat[,"y"],
"z"=rowSums(envelySpacedMat))
Damit werden die Grenzen auswählt, um dies zu vermeiden, können Sie die von und nach Argumenten leicht verändern kann.
Wenn Sie möchten 100 Beobachtungen aus einer bestehenden data.frame auszuwählen, die mehr oder weniger gleichmäßigem Abstand, können Sie versuchen, die folgenden:
# select 100 obs roughly evenly dispersed:
obsSystematic <- as.integer(seq(from=1, to=nrow(df), length.out = 100))
mySystematicdf <-df[obsSystematic,]
Dies ist eine zufällige Stichprobe ... – 27titanik
Sorry, vielleicht bin ich das ist dumm, aber ich kann nur eine zufällige Stichprobe sehen. Ich brauche einen systematischen Ansatz, der darin bestehen kann, alle 100 eine Beobachtung zu machen, aber geordnet. Wenn ich eine systematische Stichprobe auf dem Quadrat zeichnen müsste, würde ich nur 100 Punkte zeichnen, die jeweils im gleichen Abstand voneinander sind. – 27titanik
Ja! Der letzte sollte der richtige sein, aber es funktioniert nicht. Können Sie es noch einmal überprüfen? – 27titanik
Sie 'sample' Funktion nutzen zu können. –