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


Функция which() в R возвращает позицию элементов в логическом векторе, которые имеют значение TRUE .

В этом руководстве представлено несколько примеров использования этой функции на практике.

Пример 1: поиск элементов в векторе

Следующий код показывает, как найти позицию всех элементов в векторе, равных 5:

#create data
data <- c(1, 2, 2, 3, 4, 4, 4, 5, 5, 12)

#find the position of all elements equal to 5
which (data == 5)

[1] 8 9

Мы видим, что элементы в позициях 8 и 9 в векторе равны значению 5.

Мы также можем найти положение всех элементов в векторе, которые не равны 5:

#find the position of all elements *not* equal to 5
which (data != 5)

[1] 1 2 3 4 5 6 7 10

Мы также можем найти, какие элементы находятся между двумя значениями или вне двух значений:

#find the position of all elements with values between 2 and 4
which (data >= 2 & data <= 4)

[1] 2 3 4 5 6 7

#find the position of all elements with values outside of 2 and 4
which (data < 2 | data > 4)

[1] 1 8 9 10

Пример 2. Подсчет вхождений в векторе

В следующем коде показано, как использовать функцию length() для поиска количества элементов в векторе, превышающих некоторое значение:

#create data
data <- c(1, 2, 2, 3, 4, 4, 4, 5, 5, 12)

#find number of elements greater than 4
length ( which (data > 4))

[1] 3

Мы видим, что в этом векторе есть 3 элемента со значениями больше 4.

Пример 3. Поиск строк во фрейме данных

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

#create data frame
df <- data.frame(x = c(1, 2, 2, 3, 4, 5),
 y = c(7, 7, 8, 9, 9, 9),
 z = c('A', 'B', 'C', 'D', 'E', 'F'))

#view data frame
df

 x y z
1 1 7 A
2 2 7 B
3 2 8 C
4 3 9 D
5 4 9 E
6 5 9 F

#return row that contains the max value in column *x*
df[ which.max (df$x), ]

 x y z
6 5 9 F

#return row that contains the min value in column *x*
df[ which.min (df$x), ]

 x y z
1 1 7 A

Пример 4: Подмножество строк во фрейме данных

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

#create data frame
df <- data.frame(x = c(1, 2, 2, 3, 4, 5),
 y = c(7, 7, 8, 9, 9, 9),
 z = c('A', 'B', 'C', 'D', 'E', 'F'))

#view data frame
df

 x y z
1 1 7 A
2 2 7 B
3 2 8 C
4 3 9 D
5 4 9 E
6 5 9 F

#return subset of data frame where values in column y are greater than 8
df[ which (df$y > 8), ]

 x y z
4 3 9 D
5 4 9 E
6 5 9 F

Найдите больше руководств по R на этой странице .

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