Проблема с созданием множества новых векторов - PullRequest
0 голосов
/ 11 марта 2019

Я хочу сделать несколько вещей:

  • Нарисуйте 100 раз 50 чисел из нормального распределения с помощью

    среднее = 10 и стандартное отклонение = 20

  • Для любого розыгрыша я хочу посчитать его стандартное отклонение и среднее арифметическое.

  • В конце я хочу создать вектор длиной 100, содержащий абсолютное значение разности стандартного отклонения и среднего арифметического. (т.е. я хочу создать некоторый вектор x, который x [i] = | ab |, где a - стандартное отклонение 100 чисел в i-м тираже, а b - среднее число 100 в i-м тираже.

Что я сделал:

Создание 100 дро из нормального распределения выше:

копия (100, стандартная (50, 10, 20), упрощенная = ЛОЖНАЯ)

Теперь у меня проблема. Я знаю, что могу использовать функции «mean» и «sd» для подсчета среднего арифметического и стандартного отклонения, но я должен определить числа, которые я рисую как вектор. Что я имею в виду:

Число, которое я бросил в первом розыгрыше - вектор 1

Число, которое я выбрал во втором розыгрыше - вектор 2

и т. Д.

Тогда я могу посчитать их среднее арифметическое и стандартное отклонение.

Тогда мы можем посчитать | a-b | (определите выше). И в конце я создам вектор, который x [i] = | a-b |.

У меня есть идея, но я не знаю, как ее написать.

1 Ответ

2 голосов
/ 11 марта 2019

Это вопрос присвоения результата replicate переменной (класса "list", начиная с simplify = FALSE), а затем sapply функциям mean и sd.

set.seed(1234)    # Make the results reproducible

repl <- replicate(100, rnorm(50, 10, 20), simplify = FALSE) 

mu <- sapply(repl, mean)
s <- sapply(repl, sd)
D <- abs(s - mu)

head(D)
#[1] 16.761930  7.953432  6.833691 12.491605  5.490149  6.850794

Однострочник может быть

D2 <- sapply(repl, function(x) abs(sd(x) - mean(x)))
identical(D, D2)
#[1] TRUE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...