Функции 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