2016-04-24 17 views

Antwort

0

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,] 
+0

Dies ist eine zufällige Stichprobe ... – 27titanik

+0

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

+0

Ja! Der letzte sollte der richtige sein, aber es funktioniert nicht. Können Sie es noch einmal überprüfen? – 27titanik