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