博主的话??: 大家好?,这里是bio。先赞后看养成习惯,还没关注的小伙伴点点关注不迷路。今天是南方的小年,祝福大家小年快乐。
目录
- 博主的话??:
- 前言
- 一、split()函数
- 二、subset()函数
- 总结
前言 今天继续学习R语言,我们之前已经介绍过了数据合并(R语言合并数据框的行与列),现在来介绍数据的拆分。数据拆分主要使用两个函数分别是split()和subset()函数。
一、split()函数 split()函数用于根据给定条件拆分数据。
#根据给定条件拆分数据,返回保存拆分数据的列表
split(
x #要拆分的向量或数据框
f #保存拆分基准的因子
)
再次用我们的老朋友鸢尾花数据集作为例子:
split(iris,iris$Species)
$setosa
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
15.13.51.40.2setosa
24.93.01.40.2setosa
34.73.21.30.2setosa
...
$versicolor
Sepal.Length Sepal.Width Petal.Length Petal.WidthSpecies
517.03.24.71.4 versicolor
526.43.24.51.5 versicolor
536.93.14.91.5 versicolor
...
$virginica
Sepal.Length Sepal.Width Petal.Length Petal.WidthSpecies
1016.33.36.02.5 virginica
1025.82.75.11.9 virginica
1037.13.05.92.1 virginica
...
可以看到整个列表被分成了三部分,分别是 s e t o s a , setosa, setosa,versicolor,$virginica。
如果需要对不同品种计算Sepal.Length的均值。可以使用apply()系列函数中的lapply()函数(R语言apply系列函数)。
lapply()函数:
lapply(split(iris$Sepal.Length,iris$Species),mean)
$setosa
[1] 5.006$versicolor
[1] 5.936$virginica
[1] 6.588
tapply()函数:
tapply(iris$Sepal.Length,iris$Species,mean)
setosa versicolorvirginica
5.0065.9366.588
二、subset()函数 subset()函数返回符合条件的数据。
#返回向量、矩阵、数据框中符合条件的部分
subset(
x #对象
subset #是否要选取数据
)
subset(
x
subset
select #为数据框时,该参数为要选取的列
)
例如从鸢尾花数据集中选取setosa品种的鸢尾花数据:
subset(iris,Species == "setosa")
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
15.13.51.40.2setosa
24.93.01.40.2setosa
34.73.21.30.2setosa
44.63.11.50.2setosa
...
当条件较多时,可以使用and等运算符,例如:
subset(iris,Species == "setosa" & Sepal.Length > 5.0)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
15.13.51.40.2setosa
65.43.91.70.4setosa
115.43.71.50.2setosa
...
selec参数可以选取或者排除特定列。例如:
#选取特定列
subset(iris,select = c(Sepal.Length,Species))
Sepal.LengthSpecies
15.1setosa
24.9setosa
34.7setosa
44.6setosa
55.0setosa
...
#排除特定列
subset(iris,select = -c(Sepal.Length,Species)) #添加减号“-”
Sepal.Width Petal.Length Petal.Width
13.51.40.2
23.01.40.2
33.21.30.2
43.11.50.2
53.61.40.2
...
总结 以上就是今天要讲的内容,看到这里的小伙伴给大恐龙点点赞,点点关注!平时要多加练习,有问题可以留言交流哦!
推荐阅读
- R语言学习笔记|R语言合并数据框的行与列
- python|sqlmap使用
- R语言学习笔记|R语言滞后差分diff()函数
- R语言应用|R语言-线性回归实例(包括所有源码)
- Python量化|行业轮动(股票)——Python量化
- java|Java 内存泄漏的排查
- java|40道Java基础常见面试题及详细答案
- 框架|IV XXSC-10
- python|大学毕业第一年失恋,无暇找工作,送外卖的心酸,我哭了整整一个夜晚