R语言学习笔记|R语言数据拆分

博主的话??: 大家好?,这里是bio。先赞后看养成习惯,还没关注的小伙伴点点关注不迷路。今天是南方的小年,祝福大家小年快乐。

目录

  • 博主的话??:
  • 前言
  • 一、split()函数
  • 二、subset()函数
  • 总结
【R语言学习笔记|R语言数据拆分】
前言 今天继续学习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 ...

总结 以上就是今天要讲的内容,看到这里的小伙伴给大恐龙点点赞,点点关注!平时要多加练习,有问题可以留言交流哦!

    推荐阅读