Як використовувати функцію which у 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() , щоб знайти кількість елементів у векторі, що перевищує певне значення:
#createdata 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 на цій сторінці .