十一、apply家族(4)
tapply()函数
tapply()函数主要是用于对一个因子或因子列表,执行指定的函数调用,最后获得汇总信息。
tapply()函数的使用格式如下所示。
tapply(x, INDEX, FUN, ...)
x:要处理的对象。
INDEX:因子或分类的字符串向量或因子列表。
FUN:要使用的函数。
... :FUN函数所需要的额外参数。
height = c(172, 175, 168, 173, 176)
gender = c('M','F', 'F', 'M', 'F') #"F":女(female);"M":男(male)
tapply(height, gender, mean) #求女性、男性身高的平均值
F M
173.0 172.5
tapply(height, gender, max) ##求女性、男性身高的最大值
F M
176 173
下面以R语言内置数据集鸢尾花iris为例。
鸢尾花的3种类型( 山鸢尾(setosa)、变色鸢尾(versicolor)和维吉尼亚鸢尾(virginica) )。
head(iris) #记录了花萼的长度、宽度;花瓣的长度、宽度;种类
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
查看iris数据集的元素类型。
sapply(iris, class)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
"numeric" "numeric" "numeric" "numeric" "factor" #数值;因子
计算不同种类鸢尾花的花瓣长度、宽度平均值。
tapply(iris$Petal.Length, iris$Species, mean) #不同种类花瓣长度的平均值
setosa versicolor virginica
1.462 4.260 5.552
tapply(iris$Petal.Width, iris$Species, mean) #不同种类花瓣宽度的平均值
setosa versicolor virginica
0.246 1.326 2.026
原文地址:https://blog.csdn.net/2403_89737073/article/details/145246143
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!