2015-11-20 5 views
-4

Я пытаюсь создать функцию, чтобы сделать следующее в R:Как реализовать следующую функцию R?

Входные параметры n, s, x-bar все целые числа.

  1. Сгенерировать n - 1 случайных чисел, используя rnorm(n - 1 , 0 , 1).
  2. Возьмите каждое из чисел, соберите его и добавьте и сохраните сумму в x. Разделите целое число s на x и возьмите квадратный корень из результата и магазин в sigma
  3. Создайте единственное значение из N (0,1). rnorm(1 , 0 , 1) и храните в Z.
  4. Затем храните в mu значение Z x (sigma/sqrt(n)) + x-bar.
  5. Распечатать mu.

Любая помощь будет оценена!

Моя попытка (Правильно ли это?)

g <- function(n , s , xb) { 
    vals <- rnorm(n - 1 , 0 , 1) 
    sum <- 0 
    for(i in vals) 
    { 
    sum <- sum + (i * i) 
    print(sum) 
    } 

    sigma <- sqrt (s/sum) 
    z <- rnorm(1, 0 , 1) 
    mu <- (z * (sigma/sqrt(n)) + xb) 
    print (mu) 
} 
+5

Что вы пытаетесь до сих пор? –

+0

Отредактировано. Можете ли вы проверить? –

+0

, по крайней мере, вы, вероятно, хотите 'sum <- sum + (vals [i] * vals [i])' ... –

ответ

0
g <- function(n , s , xb) { 
vals <- rnorm(n - 1 , 0 , 1) 
sum<- sum(vals^2) 
sigma <- sqrt (s/sum) 
z <- rnorm(1, 0 , 1) 
mu <- (z * (sigma/sqrt(n)) + xb) 
print (mu) 
} 
g(10,6,3) 
[1] 2.89561 
Смежные вопросы