Как использовать функции all() и any() в R (с примерами)


Функции all() и any() в R можно использовать для проверки того, все или какие-либо значения в векторе оцениваются как TRUE для некоторого выражения.

Эти функции используют следующий синтаксис:

#check if *all* values in x are less than 10
all(x < 10)

#check if *any* values in x are less than 10
any(x < 10)

В следующих примерах показано, как использовать каждую функцию на практике.

Пример 1: Используйте all() и any() с вектором

Мы можем использовать следующие функции all() и any() , чтобы проверить, меньше ли все или какие-либо значения в векторе 10:

#define vector of data values
data <- c(3, 4, 4, 8, 12, 15)

#check if all values are less than 10
all(data < 10)

[1] FALSE

#check if any values are less than 10
any(data < 10)

[1] TRUE

Функция all() оценивается как ЛОЖЬ , потому что не все значения в векторе меньше 10.

Функция any() возвращает значение TRUE , поскольку хотя бы одно значение в векторе меньше 10.

Пример 2: Используйте all() со значениями NA

Если мы используем функцию all() с вектором, который имеет значения NA, в результате мы можем получить NA :

#define vector of data values with some NA values
data <- c(3, 4, 4, 8, NA, NA)

#check if all values are less than 10
all(data < 10)

[1] NA

Чтобы избежать этого, мы должны указать na.rm=TRUE , чтобы сначала удалить значения NA из вектора, прежде чем проверять, соответствуют ли все значения некоторому условию:

#define vector of data values with some NA values
data <- c(3, 4, 4, 8, NA, NA)

#check if all values are less than 10 (and ignore NA values)
all(data < 10, na. rm = TRUE )

[1] TRUE

Функция all() теперь оценивается как TRUE , поскольку каждое значение в векторе меньше 10, при условии, что мы игнорируем значения NA.

Пример 3: Используйте all() и any() со столбцами фрейма данных

Мы также можем использовать функции all() и any() для вычисления выражений для столбцов фрейма данных.

Например, предположим, что у нас есть следующий фрейм данных в R:

#define data frame
df <- data.frame(points=c(30, 22, 19, 20, 14, NA),
 assists=c(7, 8, 13, 13, 10, 6),
 rebounds=c(8, 12, NA, NA, 5, 8))

#view data frame
df

 points assists rebounds
1 30 7 8
2 22 8 12
3 19 13 NA
4 20 13 NA
5 14 10 5
6 NA 6 8

Мы можем использовать функции all() и any() для оценки различных выражений для значений в столбце «rebounds»:

#check if all values are less than 10 in rebounds column
all(df$rebounds < 10, na. rm = TRUE )

[1] FALSE

#check if any values are less than 10 in rebounds column
any(df$rebounds < 10, na. rm = TRUE )

[1] TRUE

#check if there are any NA values in rebounds column
any(is.na(df$rebounds))

[1] TRUE

Из вывода мы видим:

  • Не все значения меньше 10 в столбце подборов.
  • По крайней мере одно значение меньше 10 в столбце подборов.
  • В столбце подборов есть как минимум одно значение NA.

Связанный: Как использовать is.na в R (с примерами)

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:

Как добавить столбец во фрейм данных в R
Как добавить пустой столбец во фрейм данных в R
Как отсортировать фрейм данных по столбцу в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.