R функция which() – поиск индекса по условию

R 语言实例Примеры на языке R

Функция which() в R используется для возврата позиций индексов элементов, удовлетворяющих условию.

which() очень часто используется при фильтрации данных и поиске конкретных элементов.

Синтаксис функции which() выглядит следующим образом:

which(x, arr.ind = FALSE)

Описание параметра:

  • xЛогический вектор или выражение, содержащее логическое условие.

  • arr.indПри использовании для матриц/массивов — возвращать ли индексы строк и столбцов. По умолчанию — FALSE.

Пример

scores <- c(55, 62, 78, 85, 92, 70, 88, 95, 60, 82)

# Найти индексы проходных оценок (>=60)
pass_idx <- which(scores >= 60)
print("Индексы сдавших студентов:")
print(pass_idx)

# Получить соответствующие баллы по индексам
print("Баллы сдавших студентов:")
print(scores[pass_idx])

# Найти позицию максимального значения
max_idx <- which.max(scores)
print(paste("Индекс максимального балла:", max_idx, "Балл:", scores[max_idx]))

# Найти позицию минимального значения
min_idx <- which.min(scores)
print(paste("Индекс минимального балла:", min_idx, "Балл:", scores[min_idx]))

Выполнение приведенного выше кода дает следующий вывод:

[1] "及格学生的索引:"
[1]  2  3  4  5  6  7  8 10
[1] "及格学生的成绩:"
[1] 62 78 85 92 70 88 95 82
[1] "最高分索引: 8 成绩: 95"
[1] "最低分索引: 1 成绩: 55"

which() также работает с матрицами. В сочетании с arr.ind = TRUE он может возвращать координаты строк и столбцов:

Пример

# Создать матрицу
m <- matrix(1:12, nrow = 3)
print("Матрица:")
print(m)

# Найти позиции строк и столбцов элементов, больших 8
positions <- which(m > 8, arr.ind = ИСТИНА)
print("Позиции элементов, больших 8 (строка, столбец):")
print(positions)

Выполнение приведенного выше кода дает следующий вывод:

[1] "矩阵:"
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12
[1] "大于 8 的元素位置(行, 列):"
     row col
[1,]   1   4
[2,]   2   4
[3,]   3   3
[4,]   3   4

R 语言实例Примеры на языке R

Другие расширения