Як використовувати функцію cut() у r


Функцію cut() в R можна використовувати для розрізання діапазону значень у контейнери та визначення міток для кожного контейнера.

Ця функція використовує такий синтаксис:

cut(x, breaks, labels = NULL, …)

золото:

  • x : Ім’я вектора
  • breaks : кількість розривів, які потрібно зробити, або вектор точок розриву
  • labels : мітки для отриманих контейнерів

У наведених нижче прикладах показано, як використовувати цю функцію в різних сценаріях із таким кадром даних у R:

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'),
                 points=c(4, 7, 8, 12, 14, 16, 20, 26, 36))

#view data frame
df

  player points
1 to 4
2 B 7
3 C 8
4 D 12
5 E 14
6 F 16
7 G 20
8:26 a.m.
9 I 36

Приклад 1: Вирізати вектор на основі кількості розривів

У наведеному нижче коді показано, як за допомогою функції cut() створити новий стовпець під назвою category , який розрізає стовпець точок на групи з чотирьох однакових розмірів:

 #create new column that places each player into four categories based on points
df$category <- cut(df$points, breaks= 4 )

#view updated data frame
df

  player points category
1 to 4 (3.97.12]
2 B 7 (3.97.12]
3 C 8 (3.97.12]
4 D 12 (3.97.12]
5 E 14 (12.20]
6 F 16 (12.20]
7 G 20 (12.20]
8:26 a.m. (20.28]
9 I 36 (28.36]

Оскільки ми вказали breaks=4 , функція cut() ділить значення в стовпці точки на групи з чотирьох однакових розмірів.

Ось як це зробила функція cut() :

  • Спочатку він знайшов різницю між найбільшим і найменшим значеннями в стовпчику балів (36 – 4 = 32).
  • Потім він ділить цю різницю на 4 (32 / 4 = 8)
  • У результаті виходить чотири баки шириною 8 кожен.

Примітка . Найнижчий інтервал становить 3,97 замість 4 через такі функції з документації cut() :

Коли паузи вказуються одним числом, діапазон даних ділиться на фрагменти пауз однакової довжини, а потім зовнішні межі відсуваються на 0,1% від діапазону, щоб переконатися, що викиди потрапляють в обидва інтервали пауз.

Приклад 2: вектор різання на основі конкретних контрольних точок

У наведеному нижче коді показано, як використовувати функцію cut() для створення нового стовпця під назвою category , який вирізає стовпець точок на основі вектора конкретних контрольних точок:

 #create new column based on specific break points
df$category <- cut(df$points, breaks=c(0, 10, 15, 20, 40))

#view updated data frame
df

  player points category
1 to 4 (0.10]
2 B 7 (0.10]
3 C 8 (0.10]
4 D 12 (10.15]
5 E 14 (10.15]
6 F 16 (15.20]
7 G 20 (15.20]
8:26 a.m. (20.40)
9 I 36 (20.40]

Функція cut() класифікувала кожного гравця за категоріями на основі конкретного вектора контрольних точок, який ми надали.

Приклад 3: Вирізання вектора за допомогою конкретних точок зупину та міток

У наведеному нижче коді показано, як використовувати функцію cut() для створення нового стовпця під назвою category , який вирізає стовпець точок на основі вектора певних точок зупину з настроюваними мітками:

 #create new column based on values in points column
df$category <- cut(df$points,
                   breaks=c(0, 10, 15, 20, 40),
                   labels=c(' Bad ', ' OK ', ' Good ', ' Great '))

#view updated data frame
df

  player points category
1 A 4 Bad
2 B 7 Bad
3 C 8 Bad
4 D 12 OK
5 E 14 OK
6 F 16 Good
7 G 20 Good
8:26 A.M. Great
9 I 36 Great

Новий стовпець категорій класифікує кожного гравця як «Поганий», «Добре», «Хороший» або «Відмінний» на основі відповідного значення в стовпці очок .

Примітка . Щоб уникнути такої помилки, кількість міток завжди має бути на одиницю меншою за кількість контрольних точок:

 Error in cut.default(df$points, breaks = c(0, 10, 15, 20, 40), labels = c("Bad",: 
  lengths of 'breaks' and 'labels' differ

Додаткові ресурси

У наступних посібниках пояснюється, як використовувати інші поширені функції в R:

Як використовувати функцію tabulate() у R
Як використовувати функцію split() у R
Як використовувати функцію match() у R
Як використовувати функцію replicate() у R

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *