从直观上看,数据框类似矩阵…
本文对应<R语言编程艺术> 第8章:数学运算与模拟: 第10章:输入与输出: 第11章:字符串操作: 第12章:绘图 ========================================================================= 数学运算与模拟 数学函数: 数学函数 说明 exp() 以自然常数e为底的指数函数 log() 自然对数 log10() 以10为底的常用对数 sqrt() 平方根 abs() 绝对值 sin(), cos() 三角函数 min()…
本文对应<R语言编程艺术>第2章:向量:第3章:矩阵和数组:第4章:列表:第5章:数据框:第6章:因子和表 ========================================================================= R语言最基本的数据类型就是向量(vector),单个数值和矩阵都是向量的一种特例. 声明:R中不需要声明变量,但是注意函数式语言的特性,如果读写向量中的元素时,R事先不知道对象是向量的话,则函数没有执行的对象.如下代码是无法工作的: y[1]…
本文对应<R语言编程艺术> 第14章:性能提升:速度和内存: 第15章:R与其他语言的接口: 第16章:R语言并行计算 ========================================================================= 性能提升:速度和内存 要使R代码运行速度更快,有以下建议: 通过向量化的方式优化.使用字节码编译等: 将代码中最消耗CPU的核心部分用编译型语言编写,如C或C++: 将代码用某种并行的方式编写. 消除显示循环: 采用向量化提升速度…
本文对应<R语言编程艺术> 第7章:R语言编程结构: 第9章:面向对象的编程: 第13章:调试 ========================================================================= R语言编程结构 控制语句: 循环: for (n in x) { } while (condition) { } repeat { } 另外break也可以用在另两种形式的循环语句中.注意repeat没有跳出循环的判断条件,因此使用break(或者类似r…
这本书与手上其他的R语言参考书不同,主要从编程角度阐释R语言,而不是从统计角度.因为之前并没有深刻考虑这些,因此写出的代码往往是一条条命令的集合,并不像是“程序”,因此,希望通过学习这本书,能提高编程效率,以及让自己更像是一个“程序员”. 本文对应<R语言编程艺术>第1章:快速入门. 生成向量的函数c(),这里c表示“连接”(concatenate) 打印列表方式: print(listname) str(listname) 第一种将所有信息全部打印,第二种只是显示对象结构(structure…
R语言编程艺术讲矩阵这节时,举了个随机噪声模糊罗斯福总统画像的例子.但是里面似乎有个错误,例子本意是区域外的值保持不变,而选定区域的值加一个随机值,但是实际情况是两个行列不相等的矩阵相加,会报错,如果我有看错,请大家告诉我. 函数调用和参数输入: 然后是函数的编写: R中不同长高的矩阵是不能相加的,即使1X1,不会出现向量补齐的情况,下面举个极端的例子: > a<-matrix(1,1,1)> b<-matrix(1:2,2,1)> a [,1][1,] 1> b [,…
矩阵(matrix)是一种特殊的向量,包含两个附加的属性:行数和列数.所以矩阵也是和向量一样,有模式(数据类型)的概念.(但反过来,向量却不能看作是只有一列或一行的矩阵. 数组(array)是R里更一般的对象,矩阵是数组的一个特殊情形.数组可以是多维的.例如:一个三维数组可以包含行.列和层(layer),而一个矩阵只有行和列两个维度 1.创建矩阵 矩阵的行和列的下标都是从1开始,如:矩阵a左上角的元素记作a[1,1].矩阵在R中是按列存储的,也就是说先存储第一列,再存储第二列,以此类推. > y…
矩阵(matrix)是一种特殊的向量,包含两个附加的属性:行数和列数.所以矩阵也是和向量一样,有模式(数据类型)的概念.(但反过来,向量却不能看作是只有一列或一行的矩阵. 数组(array)是R里更一般的对象,矩阵是数组的一个特殊情形.数组可以是多维的.例如:一个三维数组可以包含行.列和层(layer),而一个矩阵只有行和列两个维度 1.创建矩阵 矩阵的行和列的下标都是从1开始,如:矩阵a左上角的元素记作a[1,1].矩阵在R中是按列存储的,也就是说先存储第一列,再存储第二列,以此类推. > y…
向量的元素要求都是同类型的,而列表(list)与向量不同,可以组合多个不同类型的对象.类似于C语言中的结构体(struct)类型. 1.创建列表 从技术上讲,列表就是向理.之前我们接触过的普通向量都称为"原子型"(atomic)向量,就是说,向量的元素已经是最小的.不可再分的.而列表则属于"递归型"(recursive)向量. 以一个雇员数据库作为第一个例子.对于每个雇员,我们存储其姓名.工资,以及一个布尔变量,表示是否工会成员.这三个变量有三个不同的类型:字符串.…