十一、apply家族(4)

embedded/2025/1/25 2:55:52/

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.5tapply(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.552tapply(iris$Petal.Width, iris$Species, mean)     #不同种类花瓣宽度的平均值
setosa versicolor  virginica 0.246      1.326      2.026 

http://www.ppmy.cn/embedded/156727.html

相关文章

解决后端接口返回Long类型参数导致的精度丢失问题

问题描述 在开发过程中,我们遇到了一个有趣的问题:后端接口返回的Long类型参数,在不同浏览器中解析出的结果不一致。具体表现为,对于应该返回的ID 283232039247028226,前端在使用某些浏览器(如火狐和谷歌&…

音频入门(二):音频数据增强

本文介绍了一些常见的音频数据增强方法,并给出了代码实现。 目录 一、简介 二、代码 1. 安装必要的库 2. 代码 3. 各函数的介绍 4. 使用方法 参考: 一、简介 音频数据增强是机器学习和深度学习领域中用于改善模型性能和泛化能力的技术。 使用数据…

Stable Diffusion 秋叶整合包v4.7 :解压即用,快速入门AI绘画

Stable Diffusion秋叶整合包,超简单一键安装StableDiffusion,无任何使用门槛,完全免费使用,支持Nvdia全系列显卡,来自B站up秋葉aaaki,近期发布了StableDiffusion整合包v4版本,一键在本地部署Sta…

Django多线程爬虫:突破数据抓取瓶颈

Django框架以其高效、安全、可扩展性强等特点,在Web开发领域得到了广泛应用。同时,Python语言的多线程支持和丰富的库也为开发多线程爬虫提供了便利。将Django与多线程技术相结合,不仅可以利用Django的强大功能进行项目管理和数据存储&#x…

IP属地:是身份证还是手机归属地?

在数字化时代,IP属地作为网络身份的一部分,经常引发人们的关注和讨论。有些人认为IP属地就像我们的身份证一样,代表着我们的真实身份和位置;而另一些人则将其与手机归属地相提并论,认为它只是网络连接的一个属性。那么…

【真机调试】前端开发:移动端特殊手机型号有问题,如何在电脑上进行调试?

目录 前言一、怎么设置成开发者模式?二、真机调试基本步骤? 🚀写在最后 前言 edge浏览器 edge://inspect/#devices 谷歌浏览器(开tizi) chrome://inspect 一、怎么设置成开发者模式? Android 设备 打开设…

Ubuntu介绍、与centos的区别、基于VMware安装Ubuntu Server 22.04、配置远程连接、安装jdk+Tomcat

目录 ?编辑 一、Ubuntu22.04介绍 二、Ubuntu与Centos的区别 三、基于VMware安装Ubuntu Server 22.04 下载 VMware安装 1.创建新的虚拟机 2.选择类型配置 3.虚拟机硬件兼容性 4.安装客户机操作系统 5.选择客户机操作系统 6.命名虚拟机 7.处理器配置 8.虚拟机内存…

Elixir语言的Web开发

Elixir语言的Web开发 引言 随着互联网的迅速发展,Web开发成为了一项极具挑战性和创造性的工作。开发者需要不断寻找更高效的编程语言和开发框架,以满足日益增长的性能和可扩展性需求。在这个背景下,Elixir语言凭借其高并发、高可用性和轻量…