base-R(又称为基础R)中的apply函数族

 说明:此为学习baseR中apply函数族笔记,仅学习使用。

C++编程语言使用循环,但是R软件提倡使用向量化操作和apply系列函数来批量处理数据,从而大大简化了计算,提高代码的速度、可读性和可维护性。其实,大部分apply函数族中的函数都可以用for循环来书写。不过相比之下,apply函数族的函数更加简洁和高效。apply函数族是baseR中的最著名的一组函数,共包含了8个以apply结尾的函数,分为是apply、eapply、lapply、mapply、rapply、sapply、tapply、vapply。

1-lapply()函数

线性数据迭代。lapply()函数的名字是list(列表)+apply(应用)的组合,这个函数是对一个列表型或者向量型数据应用一个函数,返回值为列表结构,且返回值的元素个数与处理对象中的元素个数相同。

lapply(X, FUN, ...)

其中

  1. X表示需要执行运算的列表或者向量;
  2. FUN表示需要运行的函数,可以是自定义函数,即function(x) {expr};
  3. 三个点表示配合函数FUN中的相应参数设置;

2-sapply()函数

sapply()函数简约但不简单。为什么这样讲?sapply是简化版的lapply函数,但是在特定场景中,sapply函数可以实现lapply函数无法实现的功能。比如,当用户需要对多个数据值或者数据框进行索引标记时,sapply函数中的USE.NAMES参数可以毫不费力地为数据来源做标注。

sapply(X, FUN, ..., simplify=TRUE, USE.NAMES=TURE)

其中

  1. 前面三个参数与lapply函数完全一致;
  2. 参数simplify为逻辑值,默认为真,表示返回结果为向量、矩阵或者数组;若simplify=FALSE时,表示返回结果为列表。
  3. 参数USE.NAMES取值为逻辑值。默认为真,表示返回值中会携带数据被运算之前的名称信息(如果有的话),否则就会忽略名称信息。

3-apply()函数

apply函数时多维数据处理利器。可以专门用来处理二维(matrix)或者三维(array)数据。值得注意的是,apply函数所针对的处理对象内部的数值类型必须一致,即构成元素必须是同质的。当数据框内包含有不同的数值类型时,apply函数可能无法给出正确的结果。

apply(X, MARGIN, FUN, ...)

其中

  1. 这里的X与lapply与sapply中的X略有不同。在apply函数中,X至少是一个二维数据,否则就会报错提醒用户数据维度必须为正数。
  2. MARGIN取值为1表示将函数FUN执行到行,取值2表示将函数FUN执行到列。亦或者是两者都有(1:2);如果处理对象X中自带了名称,那么MARGIN还可以是列名或者行名。

4-vapply()函数

vapply()函数是安全版的sapply,其在处理相同的R对象时,具有略微的速度优势。

vapply(X, FUN, FUN.VALUE, ..., USE.NAMES=TRUE)

其中

参数FUN.VALUE是vapply函数的核心,这个参数的存在,vapply会在调用参数fun的具体函数时,检查参数X中的每一个数据值,以确保所有值的长度和类型均一致。

参考:

R数据科学实战:工具详解与案例分析--2019年6月出版--机械工业出版社<推荐阅读,对于apply函数族部分的介绍写的详细且易懂,可以花费较短的时间掌握这些知识。>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/6651.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【力扣】74. 搜索二维矩阵 <二分法>

【力扣】74. 搜索二维矩阵 给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非递减顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&am…

会议OA项目之会议审批(亮点功能:将审批人签名转换为电子手写签名图片)

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于OA项目的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.主要功能点介绍 二.效果展示 三.前端…

SQL 三表联查

三表联查 创建三张表来三表联查一下吧inner join 内连接full join 全连接left join 左连接因需要在三个表中查东西,还不能要交集,要并集。 创建三张表 我用的是DBaver来创建,下面就是代码,跑完之后会出现三个表。 create table tas_master.hk_test_1(id INT not null,na…

MongoDB 的日常使用

一、简介 1、 常见的数据库分类 RDBMS&#xff08;关系型数据库&#xff09;&#xff1a;常见的关系型数据库有 Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL&#xff1b; NoSQL&#xff08;非关系型数据库&#xff09;&#xff1a;常见的非关系型数据库有 …

thinkphp实现无限分类(使用递归)

thinkphp实现无限分类&#xff08;使用递归&#xff09; 本文实例为大家分享了thinkphp实现无限分类的详细代码&#xff0c;希望对大家学习无限分类有所启发。 数据库&#xff1a;test 数据表&#xff1a;&#xff08;tp_category&#xff09;&#xff1a; Common/conf/conf…

在VSCode中实现Rust编程调试指南

在 VS Code 中调试 Rust&#xff1a;终极指南 在本教程中&#xff0c;您将学习如何使用 VS Code 调试 Rust。可用于使用 VS Code 调试 Rust 的操作。设置 VS Code 来调试 Rust Rust因其易用性、安全性和高性能而继续保持其作为最受欢迎的编程语言的地位。随着 Rust 的流行&…

ubuntu wget ERROR 403: Forbidden 错误

解决办法&#xff1a; 临时变更wget的UA wget -U "浏览器的useragent" 下载地址永久变更Wget&#xff08;未测试&#xff09; 修改配置文件/etc/wgetrc&#xff0c;添加下面这一行&#xff1a; header User-Agent: "浏览器的useragent"上面这个配置后…

elementui el-table折叠表格,点击主表数据展开从表明细

用element-ui 的el-table实现&#xff1a;主表table可实现展开行显示关联的明细表table的列表数据&#xff0c;效果图如下 <el-tableref"tableData"v-loading"listLoading":data"tableData"row-key"id"borderstripehighlight-curr…

Unity中的Translate和Rotate

示例代码&#xff1a; using UnityEngine; using System.Collections;public class TransformFunctions : MonoBehaviour {public float moveSpeed 10f;public float turnSpeed 50f;void Update (){//按上箭头向前移动if(Input.GetKey(KeyCode.UpArrow))transform.Translate…

自动驾驶感知系统-激光雷达

感知系统 现有的车载传感器主要包括超声波雷达、激光雷达、毫米波雷达、车载摄像头、红外探头等。主流的自动驾驶感知平台以雷达和车载摄像头为主&#xff0c;呈现多传感器融合发展趋势。基于测量能力和环境适应性&#xff0c;预计雷达和车载摄像头会保持其感知平台霸主地位&a…

在Linux、Ubuntu中跨平台编译ARM(AARCH64)平台的binutils

Binutils 是GNU(https://www.gnu.org/)提供的一组二进制工具的集合。通常,在已经安装了Linux操作系统的个人电脑上,系统就已经自带了这个工具集。但在进行嵌入式开发的时候,可能会用到支持ARM64平台的Binutils,这时就需要用到交叉编译。 此前,在【1】我们已经介绍过Ubun…

在react中配置less

第一步&#xff1a;暴露出webpack配置文件 终端命令&#xff1a;npm run eject (此命令一旦运行不可逆) 第二步&#xff1a;安装less以及less-loader npm install less less-loader --save-dev 第三步&#xff1a;修改webpack的配置文件 运行完以上命令后&#xff0c;项目…

精通自动化,Pytest自动化测试框架-fixture用例的前后置(实现)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 测试用例实现前后…

一条SQL同时获取总数和分组数量

示例sql如下 select col1,col2,col3,count(*) from table1 t1 join table2 t2 on t1.col1 t2.col1 where 11 group by col1,col2,col3这里是整体数量count&#xff0c;当有一个col4&#xff0c;以它的值为分组条件进行分组&#xff0c;一般情况下&#xff0c;应为 select co…

crmeb部署

安装宝塔 教程 安装所需要的软件 php mysql5.7 redis fileinfo nginx 安装crmeb 重启mysql 前台http://192.168.216.128/ 后台http://192.168.216.128/admin admin admin888登录 访问前台

自动化运维工具--saltstack部署及使用

目录 一、saltstack简介 1、介绍 2、Salt的核心功能 3、saltstack通信机制 二、saltstack部署 1、部署环境 2、配置yum源 3、安装master与minion 4、连接认证master和minion 三、salt运行 1、执行格式 2、实操演示 一、saltstack简介 1、介绍 saltstack是一个配置管…

2023国际数模A题-购物评论的数据分析【具体分析+代码 持续更新!!】

问题1:请建立文本分析的数学模型 商品评论,统计评论中单词的出现频率,利用附录一和附录二中的评论绘制单 词云图,并进行数据和信息的可视化分析。 解答: 建立文本分析的数学模型 首先,我们需要对商品评论进行文本处理,包括去除停用词、词干提取、词义还原等操作。然后…

连锁反应开始了!Linux 发行版迎新变化!

任何企业都有合法权利捍卫其模型和产品。撇开大量不真正了解开源许可证如何工作的人不谈&#xff0c;我们的印象是&#xff0c;有很多人觉得仅仅因为这是Linux&#xff0c;他们就有某种权利免费获得它。但事实上&#xff0c;他们没有。这不是自由软件中的“自由”的意思&#x…

浮点型在内存中的存储

目录 1.浮点数是什么&#xff1f; 2. 浮点数存储规则 1.浮点数是什么&#xff1f; 就是数学中的小数。 常见的浮点数&#xff1a; 3.14159 1E10&#xff08;1*10^10&#xff09; 浮点数家族包括&#xff1a; float、double、long double 类型。 浮点数表示的范围&#x…

【微信小程序】要在两个<view>之间绘制一条分割线,使用border属性和样式

要在两个<view>之间绘制一条分割线&#xff0c;可以使用border属性以及适当的样式设置。以下是一个示例代码&#xff1a; <view class"container"><view class"content">内容</view><view class"divider"></v…