2017-12-08 12 views
0

현재 루프를 프로그래밍 중이며 growth_rate이라는 벡터를 만들었습니다. rnorm 함수를 사용하여이 벡터에 대해 임의의 숫자를 20 번 그리려합니다. 내가이 일을 사용하고 코드 나 또한 벡터는 여전히 같은 수의 20 배를 대신 출력반복 횟수 20 회, 임의 출력 20 회를 얻을 수 없음

grate <- rep(rate, 20) 

라고 만들기라는 벡터

rate <- rnorm(n = 1, mean = 1, sd = 0.4) 

을 한

growth_rate <- rep((rnorm(n = 1, mean = 1, sd = 0.4)), times = 20) 

입니다 예를 들어 20 개의 난수

[1] 1.304936 1.304936 1.304936 1.304936 1.304936 1.304936 1.304936 1.304936 1.304936

등등 ...

내가 출력 20 임의의 숫자 하나의 벡터가 아닌 20을 만들 수 있습니다 어쨌든 있나요 대신 rnorm을 사용하여 벡터를 구분 하시겠습니까? 고맙습니다!

+0

'복제'가 아닌 '복제'를 사용하십시오. –

+0

나는> growth_rate <-replicate (rate, 20)를 사용했고 하나의 결과 만 반환했습니다. [1] 20. 어느 누구도 제가 약간 당황한 것처럼 조언 할 수는 있습니다 ... –

+0

@JohnL 아래의 답변과 설명을보십시오. –

답변

0

동일한 정규 분포에서 20 개의 샘플을 그리려면 rnorm(20, ...)을 사용하면됩니다.

당신의 접근 방식에서
set.seed(2017); 
rnorm(20, mean = 1, sd = 0.4); 
#[1] 1.1843665 0.4939755 0.7252589 0.8217352 1.4896327 1.1439255 1.1603086 
#[8] 1.0442731 0.7776635 1.7147653 1.1991402 0.2133531 1.2805424 0.8108834 
#[15] 0.5728705 0.9128100 0.5895982 0.7084435 0.7499843 0.3253227 

먼저 정규 분포에서 하나의 샘플을 그리고 다음 같은 수의 20 시간을 복제합니다.

+0

어떻게 20 개의 각 샘플을 개별 연도에 추가 할 수 있습니까 (1:20 사이). 나는 루프를 쓰고 있는데 그것이 내가 생각했던 것보다 오래 걸린다. -/ –

+0

@JohnL "각각의 [...] 샘플을 개별 연도에 더한다"는 것은 무엇을 의미합니까? –

+0

저는 20 년 동안 성장률에 따라 인구 크기를 (1000에서 시작하여) 계산하는 루프를 작성하고 있습니다. 매년마다 rnorm을 사용하여 계산에 임의의 증가율을 얻으려고합니다. 나는이 루프를 같이 묶는 나의 방법에 아마도 완전히 틀리다. –