Jak podzielić dane na grupy o równej wielkości w r


Możesz użyć funkcji cut_number() pakietu ggplot2 w R, aby podzielić wektor na grupy o równej wielkości.

Ta funkcja wykorzystuje następującą podstawową składnię:

numer_cięcia(x,n)

Złoto:

  • x: Nazwa wektora cyfrowego do podziału
  • n: Liczba grup

Poniższy przykład pokazuje, jak w praktyce wykorzystać tę funkcję.

Przykład: Jak podzielić dane na grupy o równej wielkości w R

Załóżmy, że mamy następującą ramkę danych w R, która zawiera informacje o punktach zdobytych przez 12 różnych koszykarzy

 #create data frame
df <- data. frame (player=LETTERS[1:12],
                 points=c(1, 2, 2, 2, 4, 5, 7, 9, 12, 14, 15, 22))

#view data frame
df

   player points
1 to 1
2 B 2
3 C 2
4 D 2
5 E 4
6 F 5
7 G 7
8:9 a.m.
9 I 12
10 D 14
11K15
12 L 22

Powiązane: Jak korzystać z funkcji LITERY w R

Możemy użyć funkcji cut_number() z pakietu ggplot2 , aby utworzyć nową kolumnę o nazwie group , która dzieli każdy wiersz ramki danych na jedną z trzech grup w oparciu o wartość w kolumnie punktów :

 library (ggplot2)

#create new column that splits data into three equal sized groups based on points
df$group <- cut_number(df$points, 3)

#view updated data frame
df

   player points group
1 To 1 [1,3.33]
2 B 2 [1,3.33]
3 C 2 [1,3.33]
4 D 2 [1,3.33]
5 E 4 (3.33.10]
6 F 5 (3.33.10]
7 G 7 (3.33.10]
8 A.M. 9 (3.33.10]
9 I 12 (10.22]
10 J 14 (10.22]
11 K 15 (10.22]
12 L 22 (10.22]

Każdy z 12 graczy został przydzielony do jednej z trzech grup na podstawie wartości wskazanej w kolumnie punktów .

Z wyniku widzimy, że istnieją 3 różne grupy:

  • grupa 1: wartość punktów mieści się w przedziale od 1 do 3,33.
  • grupa 2: wartość punktów mieści się w przedziale od 3,33 do 10.
  • grupa 3: wartość punktów mieści się w przedziale od 10 do 22.

Widzimy, że w każdej grupie umieszczono czterech zawodników.

Jeśli chcesz, aby kolumna group wyświetlała grupy jako wartości całkowite, możesz zawinąć funkcję cut_number() w funkcję as.numeric() :

 library (ggplot2)

#create new column that splits data into three equal sized groups based on points
df$group <- as. numeric (cut_number(df$points, 3))

#view updated data frame
df

   player points group
1 A 1 1
2 B 2 1
3 C 2 1
4 D 2 1
5 E 4 2
6 F 5 2
7 G 7 2
8:92 a.m.
9 I 12 3
10 D 14 3
11 K 15 3
12 L 22 3

Nowa kolumna grupy zawiera teraz wartości 1, 2 i 3 wskazujące, do której grupy należy gracz.

Ponownie w każdej grupie znajduje się czterech graczy.

Uwaga : Aby podzielić kolumnę punktów na więcej niż trzy grupy, po prostu zamień 3 w funkcji cut_number() na inną liczbę.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak podzielić ramkę danych w R
Jak podzielić dane na zbiory treningowe i testowe w R
Jak przeprowadzić grupowanie danych w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *