R语言中apply和tapply怎么用
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容介绍了"R语言中apply和tapply怎么用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
千家信息网最后更新 2025年12月02日R语言中apply和tapply怎么用
本篇内容介绍了"R语言中apply和tapply怎么用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
一、apply()函数
apply函数可将一个任意函数"应用"到矩阵、数组、数据框的任何维度上。使用格式如下:
apply(x, MARGIN, FUN, ...)
其中x为数据对象,MARGIN是维度的下标,FUN是由你指定的函数,而...则包括了任何想传递给FUN的参数。在矩阵或数据框中, MARGIN=1表示行, MARGIN=2表示列。
示例如下:
set.seed(100)mydata <- matrix(rnorm(30), nrow=6) #生成随机数mydata [,1] [,2] [,3] [,4] [,5][1,] -0.50219235 -0.58179068 -0.20163395 -0.9138142 -0.8143791[2,] 0.13153117 0.71453271 0.73984050 2.3102968 -0.4384506[3,] -0.07891709 -0.82525943 0.12337950 -0.4380900 -0.7202216[4,] 0.88678481 -0.35986213 -0.02931671 0.7640606 0.2309445[5,] 0.11697127 0.08988614 -0.38885425 0.2619613 -1.1577295[6,] 0.31863009 0.09627446 0.51085626 0.7734046 0.2470760
利用apply求均值
apply(mydata, 2, mean)[1] 0.1454680 -0.1443698 0.1257119 0.4596365 -0.4421267apply(mydata, 2, mean, trim=0.2) #去掉端值[1] 0.1220539 -0.1888731 0.1008213 0.3403341 -0.4355267
注:FUN可为任意R函数,这也包括你自行编写的函数。
二、tapply()函数
tapply()函数可根据因子、向量和要计算的函数计算,使用格式如下:
tapply(X, INDEX, FUN = NULL, ..., simplify = TRUE)
其中X通常是一向量;INDEX是一个list对象,且该list中的每一个元素都是与X有同样长度的因子;FUN是需要计算的函数;simplify是逻辑变量,若取值为TRUE(默认值),且函数FUN的计算结果总是为一个标量值,那么函数tapply返回一个数组;若取值为FALSE,则函数tapply的返回值为一个list对象。
示例如下:
Student <- c("John Davis", "Angela Williams", "Bullwinkle Moose","David Jones", "Janice Markhammer", "Cheryl Cushing","Reuven Ytzrhak", "Greg Knox", "Joel England","Mary Rayburn")Math <- c(502, 600, 412, 358, 495, 512, 410, 625, 573, 522)English <- c(25, 22, 18, 15, 20, 28, 15, 30, 27, 18)roster <- data.frame(Student, Math, English,stringsAsFactors=FALSE)
roster$grade[roster$Math <= 500] <- "A"roster$grade[roster$Math > 500] <- "B"
roster Student Math English grade John Davis 502 25 B Angela Williams 600 22 B Bullwinkle Moose 412 18 A David Jones 358 15 A Janice Markhammer 495 20 A Cheryl Cushing 512 28 B Reuven Ytzrhak 410 15 A Greg Knox 625 30 B Joel England 573 27 B Mary Rayburn 522 18 B1)应用前面的apply求数学和英语的平均分
apply(roster[,c(2,3)],2,mean)Math English 500.9 21.82)当需要分组计算时候,使用tapply函数
tapply(roster[,"English"], roster[,"grade"], mean) A B 17 25注:当index不是因子时,可以用as.factor()把参数强制转换成因子
3)aggregate函数同样可以得到类似的结果:
aggregate(x=roster[c('English')], by = list(roster$grade), FUN=mean)4)实现类似excel的透视表功能
attach(roster)tapply(English,list(Student,grade),mean) A BAngela Williams NA 22Bullwinkle Moose 18 NACheryl Cushing NA 28David Jones 15 NAGreg Knox NA 30Janice Markhammer 20 NAJoel England NA 27John Davis NA 25Mary Rayburn NA 18Reuven Ytzrhak 15 NA"R语言中apply和tapply怎么用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
函数
因子
对象
数据
语言
内容
参数
数组
更多
格式
知识
矩阵
示例
结果
维度
应用
实用
学有所成
接下来
下标
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
提高数据库的连接
惠州博罗税盘服务器地址
陕西天驱企业级服务器云空间
网络安全系统漏洞问题
c 数据库添加代码怎么写
域服务器远程管理日志服务用途
小服务器机箱
射线跟踪模型获取三维数据库
服务器怎么修改固态硬盘
博兴机械软件开发公司
边缘侧环境服务器
学生网络安全培训课件
网络安全 高校
服务器安全检测报告模板
中国网络服务器安全报告
网络安全在上网注意什么
怎么把安装程序放到云服务器
imperva数据库安全
交换机到服务器六类网线接法
奶瓶下载软件开发
显示与控制软件开发
维护网络安全的函
美眉视频软件开发
网络安全培训班推荐就业靠谱吗
香港电讯服务器
c 数据库添加代码怎么写
软件开发包含硬件怎么做账
药品市场数据库
互联网服务器开发工程师
建筑服务器手机版网易