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


Вы можете использовать функцию ntile() из пакета dplyr в R, чтобы разделить входной вектор на n ячеек.

Эта функция использует следующий базовый синтаксис:

ntile(x, n)

Золото:

  • x : входной вектор
  • n : Количество отсеков

Примечание . Размеры ведер могут отличаться максимум на единицу.

Следующие примеры показывают, как использовать эту функцию на практике.

Пример 1. Использование ntile() с вектором

Следующий код показывает, как использовать функцию ntile() для разделения вектора из 11 элементов на 5 разных сегментов:

 library (dplyr)

#createvector
x <- c(1, 3, 4, 6, 7, 8, 10, 13, 19, 22, 23)

#break up vector into 5 buckets
ntile(x, 5)

 [1] 1 1 1 2 2 3 3 4 4 5 5

Из результата мы видим, что каждый элемент исходного вектора был помещен в одно из пяти сегментов.

Наименьшие значения присваиваются сегменту 1, а самые большие значения присваиваются сегменту 5.

Например:

  • Наименьшие значения 1, 3 и 4 присваиваются сегменту 1 .
  • Наибольшие значения, 22 и 23, присвоены сегменту 5 .

Пример 2. Использование ntile() с фреймом данных

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

 #create data frame
df <- data. frame (player=LETTERS[1:9],
                 points=c(12, 19, 7, 22, 24, 28, 30, 19, 15))

#view data frame
df

  player points
1 to 12
2 B 19
3 C 7
4 D 22
5 E 24
6 F 28
7 G 30
8:19 a.m.
9 I 15

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

 library (dplyr)

#create new column that assigns players into buckets based on points
df$bucket <- ntile(df$points, 3)

#view updated data frame
df

  player points bucket
1 to 12 1
2 B 19 2
3 C 7 1
4 D 22 2
5 E 24 3
6 F 28 3
7 G 30 3
8:19 2
9 I 15 1

Новый столбец сегмента присваивает каждому игроку значение от 1 до 3.

Игроки с наименьшим количеством очков получают значение 1 , а игроки с наибольшим количеством очков получают значение 3 .

Дополнительные ресурсы

В следующих руководствах объясняется, как использовать другие распространенные функции в R:

Как использовать функциюthrough() в dplyr
Как использовать функцию relocate() в dplyr
Как использовать функцию среза() в dplyr

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *