主要内容:安装xlsx软件包,验证并加载“xlsx”软件包,准备xlsx文件用作为输入,读取Excel文件Microsoft Excel是使用最广泛的电子表格程序,它是以或格式存储数据。 R可以使用某些excel特定的包直接读取这些文件的内容。一些常用的软件包有 - XLConnect,xlsx,gdata等。在这个篇文章中,我们将使用xlsx软件包。 R也可以使用这个包写入excel文件。 安装xlsx软件包 可以在R控制台中使用以下命令来安装软件包。它可能会要求安装一些这个包所依赖的附加包。
主要内容:获取和设置工作目录,作为CSV文件输入,读取CSV文件,分析CSV文件,写入CSV文件在R中,我们可以从存储在R环境外部的文件读取数据。还可以将数据写入由操作系统存储和访问的文件。 R可以读取和写入各种文件格式,如:csv,excel,xml等。 在本章中,我们将学习如何从文件中读取数据,然后将数据写入文件。 该文件应该存在于当前工作目录中,以方便R可以读取它。 当然,也可以设置自己的目录,并从那里读取文件。 获取和设置工作目录 可以使用函数来检查R工作区指向哪个目录,使用函数设置
主要内容:获取数据帧的结构,数据帧数据摘要,从数据帧提取数据,扩展数据帧数据帧是一个表或二维类似数组的结构,其中每列包含一个变量的值,每行包含来自每一列的一组值。 以下是数据帧的特征 - 列名称应该不为空。 行名称应该是唯一的。 存储在数据帧中的数据可以是数字,因子或字符类型。 每列应包含相同数量的数据项。 创建数据帧 当我们执行上述代码时,会产生以下结果 - 获取数据帧的结构 通过使用函数可以查看数据帧的结构,参考以下代码实现 - 当我们执行上述代码时,会产生以下结
主要内容:适用于字符串构造的规则,字符串操作在R中的单引号或双引号中写入的任何值都将被视为字符串。在R内部将每个字符串存储在双引号内,即使您使用单引号创建它们。 适用于字符串构造的规则 字符串开头和结尾的引号应为双引号或双引号,他们不能混合。 双引号可以插入到以单引号开始和结尾的字符串中。 单引号可以插入到以双引号开始和结尾的字符串中。 双引号不能插入到以双引号开始和结尾的字符串中。 单引号无法插入到以单引号开始和结尾的字符串中。 有效字符
主要内容:运算符类型运算符是一个符号,它告诉编译器执行特定的数学或逻辑操作。 R语言丰富的内置运算符,并提供以下类型的运算符。 运算符类型 在R编程中有以下类型的运算符 - 算术运算符 关系运算符 逻辑运算符 赋值运算符 其他运算符 1.算术运算符 下表显示了R语言支持的算术运算符。运算符对向量的每个元素进行操作。 加法(+), 相加两个向量。 示例代码: 执行上面示例代码,得到以下结果 - 减法(-), 将一个向量
主要内容:反射的基本概念,reflect 包,反射的类型对象(reflect.Type),反射的类型(Type)与种类(Kind),指针与指针指向的元素,使用反射获取结构体的成员类型,结构体标签(Struct Tag)反射(reflection)是在 Java 出现后迅速流行起来的一种概念,通过反射可以获取丰富的类型信息,并可以利用这些类型信息做非常灵活的工作。 大多数现代的高级语言都以各种形式支持反射功能,反射是把双刃剑,功能强大但代码可读性并不理想,若非必要并不推荐使用反射。 下面我们就来将
Go语言中除了可以使用通道(channel)和互斥锁进行两个并发程序间的同步外,还可以使用等待组进行多个任务的同步,等待组可以保证在并发环境中完成指定数量的任务 在 sync.WaitGroup(等待组)类型中,每个 sync.WaitGroup 值在内部维护着一个计数,此计数的初始默认值为零。 等待组有下面几个方法可用,如下表所示。 等待组的方法 方法名 功能 (wg * WaitGroup)
主要内容:通道的特性,声明通道类型,创建通道,使用通道发送数据,使用通道接收数据如果说 goroutine 是 Go语言程序的并发体的话,那么 channels 就是它们之间的通信机制。一个 channels 是一个通信机制,它可以让一个 goroutine 通过它给另一个 goroutine 发送值信息。每个 channel 都有一个特殊的类型,也就是 channels 可发送数据的类型。一个可以发送 int 类型数据的 channel 一般写为 chan int。 Go语
主要内容:error 基本用法,自定义错误类型错误处理在每个编程语言中都是一项重要内容,通常开发中遇到的分为异常与错误两种,Go语言中也不例外。本节我们主要来学习一下Go语言中的错误处理。 在C语言中通过返回 -1 或者 NULL 之类的信息来表示错误,但是对于使用者来说,如果不查看相应的 API 说明文档,根本搞不清楚这个返回值究竟代表什么意思,比如返回 0 是成功还是失败? 针对这样的情况,Go语言中引入 error 接口类型作为错误处理
主要内容:手动触发宕机,在运行依赖的必备资源缺失时主动触发宕机,在宕机时触发延迟执行语句Go语言的类型系统会在编译时捕获很多错误,但有些错误只能在运行时检查,如数组访问越界、空指针引用等,这些运行时错误会引起宕机。 宕机不是一件很好的事情,可能造成体验停止、服务中断,就像没有人希望在取钱时遇到 ATM 机蓝屏一样,但是,如果在损失发生时,程序没有因为宕机而停止,那么用户将会付出更大的代价,这种代价可以是金钱、时间甚至生命,因此,宕机有时也是一种合理的止损方法。 一般而言,当宕机发生时
主要内容:在闭包内部修改引用的变量,示例:闭包的记忆效应,示例:闭包实现生成器Go语言中闭包是引用了自由变量的函数,被引用的自由变量和函数一同存在,即使已经离开了自由变量的环境也不会被释放或者删除,在闭包中可以继续使用这个自由变量,因此,简单的说: 函数 + 引用环境 = 闭包 同一个函数与不同引用环境组合,可以形成不同的实例,如下图所示。 图:闭包与函数引用 一个函数类型就像结构体一样,可以被实例化,函数本身不存储任何信息,只有与引用环境结合后形成的闭包才具有“记忆性”,
主要内容:初始化列表,在列表中插入元素,从列表中删除元素,遍历列表——访问列表的每一个元素列表是一种非连续的存储容器,由多个节点组成,节点通过一些变量记录彼此之间的关系,列表有多种实现方法,如单链表、双链表等。 列表的原理可以这样理解:假设 A、B、C 三个人都有电话号码,如果 A 把号码告诉给 B,B 把号码告诉给 C,这个过程就建立了一个单链表结构,如下图所示。 图:三人单向通知电话号码形成单链表结构 如果在这个基础上,再从 C 开始将自己的号码告诉给自己所知道号码的主人,这样就形
map 的遍历过程使用 for range 循环完成,代码如下: 遍历对于Go语言的很多对象来说都是差不多的,直接使用 for range 语法即可,遍历时,可以同时获得键和值,如只遍历值,可以使用下面的形式: 将不需要的键使用 改为匿名变量形式。 只遍历键时,使用下面的形式: 无须将值改为匿名变量形式,忽略值即可。 注意:遍历输出元素的顺序与填充顺序无关,不能期望 map 在遍历时返回某种期望顺
主要内容:map 概念,map 容量,用切片作为 map 的值Go语言中 map 是一种特殊的 数据结构,一种元素对(pair)的无序集合,pair 对应一个 key(索引)和一个 value(值),所以这个结构也称为关联数组或字典,这是一种能够快速寻找值的理想结构,给定 key,就可以迅速找到对应的 value。 map 这种数据结构在其他编程语言中也称为字典( Python)、hash 和 HashTable 等。 map 概念 map 是引用类型,可以
主要内容:定义字符串,字符串拼接符“+”,字符串实现基于 UTF-8 编码,定义多行字符串一个字符串是一个不可改变的字节序列,字符串可以包含任意的数据,但是通常是用来包含可读的文本,字符串是 UTF-8 字符的一个序列(当字符为 ASCII 码表上的字符时则占用 1 个字节,其它字符根据需要占用 2-4 个字节)。 UTF-8 是一种被广泛使用的编码格式,是文本文件的标准编码,其中包括 XML 和 JSON 在内也都使用该编码。由于该编码对占用字节长度的不定性,在Go语言中字符串也可能