如何在r中将数据分成相等大小的组


您可以使用 R 中ggplot2包的cut_number()函数将向量划分为大小相等的组。

该函数使用以下基本语法:

切割数(x,n)

金子:

  • x:要划分的数字向量的名称
  • n:组数

下面的例子展示了如何在实际中使用这个功能。

示例:如何在 R 中将数据分成大小相等的组

假设我们在 R 中有以下数据框,其中包含 12 名不同篮球运动员得分的信息

 #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

相关:如何在 R 中使用 LETTERS 函数

我们可以使用ggplot2包中的cut_number()函数创建一个名为group的新列,该列根据列中的值将数据帧的每一行分为三个组之一:

 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]

根据分数栏中显示的数值,12 名选手中的每一位都被分到三组中的一组。

从结果中我们可以看到有 3 个不同的组:

  • 第1组:分值在1到3.33之间。
  • 第2组:分值在3.33到10之间。
  • 第3组:分值在10到22之间。

我们可以看到每组有四名球员。

如果您希望列将组显示为整数值,您可以将cut_number()函数包装在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

新的组列现在包含值 1、2 和 3,以指示玩家属于哪个组。

同样,每组包括四名球员。

注意:要将点列拆分为三组以上,只需将cut_number()函数中的3替换为不同的数字即可。

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何在R中分割数据框
如何在 R 中将数据拆分为训练集和测试集
如何在R中进行数据分组

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注