如何使用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 中的其他常用函数: