Поскольку я очень люблю кошек, я попытаюсь привести небольшой пример того, как использовать логический вектор для выбора нужных элементов из существующего вектора (это могут быть имена кошек, случайные числа и т. Д.)
# i got a list of my cats name
my_cats_names <- c("Boby", "Tara", "Petzi", "Felix", "Mauzi", "Schnurrli")
# and a coresponding list with my cats weight
my_cats_weight <- c(8, 4, 7, 5, 4, 5)
# so Boby has 8kg, Tara 7 and so on
# During last night someone has stolen my ham, and im suspecting one of my cats to be the thief.
# Since it was a big ham im pretty sure it needs a cat of at least 6kg to steal and eat it,
# so i want to select all my cats that are 6kg or more from my list.
which_one_is_over_6_kg_logical_vector <- my_cats_weight >= 6
which_one_is_over_6_kg_logical_vector
# > which_one_is_over_6_kg_logical_vector
# [1] TRUE FALSE TRUE FALSE FALSE FALSE
# This result tells me, that the first one in the list is over 6kg, the second one not the 3rd one is over and so on
# Now i can use the logical vector to select only those elements from my list, that fullfill my constraint (beeing over 6kg)
my_cats_over_6kg <- my_cats_names[which_one_is_over_6_kg_logical_vector]
my_cats_over_6kg
# > my_cats_over_6kg
# [1] "Boby" "Petzi"
# im pretty sure it was Boby or Petzi
# So by creating a logical vector we can select items from an existing vector if they fullfill our constraint
Вместо вектора каталогов вы получили вектор чисел, для которого вы можете рассчитать среднее значение и стандартное отклонение.Вместо того чтобы выбирать кошек весом более 6 кг, вам нужно число ниже среднего (ваш_вектор) - 2 * sd (ваш_вектор) и число выше среднего (ваш_вектор) + 2 * сд (ваш_вектор).
Я надеюсь, что все кошки помогутнемного и не вызывает дополнительной путаницы:)