2016-12-20 2 views
0

Ich arbeite in R und ich versuche, eine Probe von N zu erzeugen, aber die Entfernung zwischen allen Zahlen muss gleich sein. So zum Beispiel eine Reihe von 5 Zahlen aus 1:10, zwischen denen der Abstand von jeder Nummer 2 geben würde (c (1,3,5,7,9).Wie man eine Probe in R erzeugt oder die Entfernung zwischen den Zahlen gleich ist

Im Moment habe ich runif(N, min = 0, max = 10), aber das wird mir zufällig nur N Zahlen geben Das gleiche passiert, wenn ich die Beispielfunktion verwende

Ich habe versucht, dies für den letzten Tag herauszufinden, konnte aber nicht einen Thread/Funktion mit einer Lösung finden Hinweis?

+3

Es klingt wie Sie wollen prozedural (nicht ra ndomly) erzeugt die Menge der Zahlen. Um das zu tun, würdest du 'seq' benutzen wollen. Dann könntest du sie zufällig mit 'sample' mischen – Dason

+0

Danke! das funktioniert –

+0

aber das Problem hier ist, dass, wenn Sie dann eine Probe aus dem Seq ziehen, ist der Abstand zwischen den Zahlen immer noch nicht –

Antwort

0

Versuchen Sie, diese

myfun <- function(R, N, I) { 
       max.start <- tail(range,1)-(N-1)*2 # sequence of output cannot extend beyond range 
       start <- sample(max.start, 1) 
       seq(start, by=I, length.out=N) 
     } 

range <- 1:10 
N <- 5 
interval <- 2 

# 1 trial 
myfun(range, N, interval) 
# [1] 2 4 6 8 10 

# 10 trials 
t(replicate(10, myfun(range, N, interval))) 
     # [,1] [,2] [,3] [,4] [,5] 
# [1,] 1 3 5 7 9 
# [2,] 1 3 5 7 9 
# [3,] 2 4 6 8 10 
# [4,] 1 3 5 7 9 
# [5,] 1 3 5 7 9 
# [6,] 2 4 6 8 10 
# [7,] 2 4 6 8 10 
# [8,] 2 4 6 8 10 
# [9,] 1 3 5 7 9 
# [10,] 2 4 6 8 10 
Verwandte Themen