如何使用r中的split()函数分割数据


R 中的split()函数可用于根据因子级别将数据分组。

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

除(x, f, …)

金子:

  • x :要分组的向量或数据块的名称
  • f :定义分组的因素

以下示例展示了如何使用此函数将向量和数据帧分组。

示例 1:使用 split() 将向量分成组

以下代码展示了如何根据因子级别向量将数据值向量划分为组:

 #create vector of data values
data <- c(1, 2, 3, 4, 5, 6)

#create vector of groupings
groups <- c('A', 'B', 'B', 'B', 'C', 'C')

#split vector of data values into groups
split(x = data, f = groups)

$A
[1] 1

$B
[1] 2 3 4

$C
[1] 5 6

结果是三组。

请注意,您还可以使用索引来检索特定组:

 #split vector of data values into groups and only display second group
split(x = data, f = groups)[2]

$B
[1] 2 3 4

示例2:使用split()将数据帧分成组

假设我们在 R 中有以下数据框:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 position=c('G', 'G', 'F', 'G', 'F', 'F'),
                 points=c(33, 28, 31, 39, 34, 44),
                 assists=c(30, 28, 24, 24, 28, 19))

#view data frame
df

  team position points assists
1 GA 33 30
2 AG 28 28
3 AF 31 24
4 BG 39 24
5 BF 34 28
6 BF 44 19

我们可以使用以下代码根据“team”变量将数据框分组:

 #split data frame into groups based on 'team'
split(df, f = df$team)

$A
  team position points assists
1 GA 33 30
2 AG 28 28
3 AF 31 24

$B
  team position points assists
4 BG 39 24
5 BF 34 28
6 BF 44 19

结果是两组。第一个仅包含“team”等于 A 的行,第二个仅包含“team”等于 B 的行。

请注意,我们还可以使用多个因子变量将数据分组。例如,以下代码显示了如何根据“团队”和“位置”变量将数据分组:

 #split data frame into groups based on 'team' and 'position' variables
split(df, f = list(df$team, df$position))

$AF
  team position points assists
3 AF 31 24

$BF
  team position points assists
5 BF 34 28
6 BF 44 19

$AG
  team position points assists
1 GA 33 30
2 AG 28 28

$BG
  team position points assists
4 BG 39 24

结果是四组。

其他资源

以下教程解释了如何使用 R 中的其他常用函数:

如何在R中使用summary()函数
如何在R中使用replicate()函数
如何在 R 中使用 match() 函数

添加评论

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