2013-07-21 18 views
7

Potrzebuję wykonać całkiem proste zadanie, ale ponieważ nie jestem zaznajomiony z R, nie wiem dokładnie, jak to zrobić. Muszę stworzyć wektor 100 liczb z losowymi wartościami od 0 do 1 z 2 liczbami ZWIERZĄT. Próbowałem to:Utwórz wektor liczbowy 100 z losowymi wartościami w R zaokrąglonymi do 2 miejsc po przecinku

x2 <- runif(100, 0.0, 1.0) 

i działa świetnie, ale numery mają 8 cyfr dziesiętnych i trzeba je tylko 2.

+4

Czy naprawdę potrzebujesz liczb z 2dp, czy tylko potrzebujesz je _displayed_ z 2 dp? Jeśli jest to drugie, 'sprintf ("%. 2f ", x2)' –

Odpowiedz

7

Może również:

(sample.int(101,size=100,replace=TRUE)-1)/100 
4

Albo

x2 <- round(runif(100, -0.005, 1.0049, 2) 
+4

Nie widzisz usuniętej odpowiedzi Paula ... To nie jest poprawne, ponieważ punkty końcowe ('0.00' i' 1.00') będą miały połowę prawdopodobieństwa wszystkie pozostałe punkty. – flodel

+0

@flodel - masz rację, dzięki. Po prostu modyfikowałem podejście PO, ale prawdopodobnie on sam o tym nie myślał. Edytowane tak, aby prawdopodobieństwa były teraz poprawne. – vaettchen

5

Czyli chcesz losowo próbkować liczby z zestawu {0, 1/100, 2/100, ..., 1}? Następnie należy napisać dokładnie, że w kodzie:

hundredths <- seq(from=0, to=1, by=.01) 
sample(hundredths, size=100, replace=TRUE) 
+0

Utrzymanie tego w prosty sposób! Bardzo dobrze. –

3

Proste fix: x2 < - round (runif (100, 0.0, 1.0), cyfry = 2)

Will zaokrąglić do dwóch DP.

2

Nadzieja to pomaga

x1 = round(runif(100,0,1), 2) 
  • 100: Ilość liczb losowych
  • 0: wartość Min
  • 1: wartość max
  • 2: zaokrąglona do dwóch pałaców przecinku
Powiązane problemy