генерирование вектора, который содержит значения больше и меньше - PullRequest
1 голос
/ 16 апреля 2020

В настоящее время я работаю над вопросом, который выглядит следующим образом:

Учитывая, что sample <- rexp(100, rate = 1.5), медиана выборки обычно меньше среднего. Создайте вектор, between_median_mean, который содержит все значения выборки, которые больше (или равны) медиане выборки и меньше (или равны) среднего значения выборки.

мой ответ: between_median_mean <- c((sample>=median(sample)&mean(sample)<=sample))

Тем не менее, я получаю только истину / ложь, а не генерирую значения в ответ на вопрос. Буду признателен, если кто-нибудь подскажет, что я сделал неправильно / пропал!

Правка: вывод, который я получаю, например: [1] TRUE FALSE TRUE TRUE TRUE.

Ответы [ 4 ]

2 голосов
/ 16 апреля 2020

Вы возвращаете логический вектор вместо фактических значений

Если вы хотите вернуть фактические значения, вам нужно использовать логический вектор для фильтрации исходного сэмпла. Это один из многих способов выполнить sh эту задачу:

sample <- rexp(100, rate = 1.5)
test_condition_res <- sample >= median(sample) & mean(sample) <= sample

#Filter sample vector to return only TRUE values from the previous condition
between_median_mean <- sample[test_condition_res]

Надеюсь, это поможет.

1 голос
/ 16 апреля 2020

Как @sconfluentus упоминает, что вам нужно сделать следующее:

 between_median_mean1 <- sample[sample>=median(sample) & mean(sample)<= sample]

т.е. чтобы получить соответствующий фрагмент вектора, вам нужно вырезать вектор с помощью new_vector = vector [условие]. Вы написали условие, в котором указано, является ли оно истинным или нет, и теперь вам просто нужно применить значение ИСТИНА / ЛОЖЬ к тому, должно ли подмножество включать значение или нет.

1 голос
/ 16 апреля 2020

Вот одно из решений:

(between_median_mean <- sample[sample >= median(sample) & sample <= mean(sample)])

Квадратные скобки «[]» используются для поднабора. Вы говорите, покажите мне только те значения выборки, которые удовлетворяют описанным условиям.

0 голосов
/ 16 апреля 2020

Мы можем использовать between

library(dplyr)
tibble(col1 = rexp(100, rate = 1.5) %>%
             filter(between(col1, median(sample), mean(sample)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...