R语言高性能编程(三)】的更多相关文章

一.使用并行计算加倍提升性能1.数据并行 VS 任务并行实现数据并行的算法scoket 并行性注意并行计算时间并不与执行任务的计算资源数目成正比(计算机核心),amdahl定律:并行代码的速度受限于串行执行的部分,包括并行性带来的开销在非windows系统中,parallel支持分叉集群(交叉法),新的work进程会从父R进程分叉出来,并拷贝数据.好处是不需要显示的创建和销毁集群实现任务并行的算法 2.计算机集群并行执行多个任务只有基于socket的集群可以做到这一点,因为进程不可能被分叉到另外…
这段时间学习了<R高性能编程>这本书,基于这段时间做的项目实践,总结了一些自己的体会,和大家分享 一.为什么R程序有时候会很慢?1.计算性能的三个限制条件 cpu ram io R代码本身2.R是运行时解释的 在运行时解释并执行R代码3.R是单线程的 CPU的强大核心并没卵用,R只会只用一个4.R需要将全部数据加载到内存 处理的最大数据了取决于内存的限制 这里 linux相比于windows有一个优势,当我们试图装载一个可用内存大小的数据集数据可能会成功装载,不过一旦可用内存耗尽,操作系统会将…
接着上一篇 一.减少内存使用的简单方法1.重用对象而不多占用内存 y <- x 是指新变量y指向包含X的那个内存块,只有当y被修改时才会复制到新的内存块,一般来说只要向量没有被其他对象引用,就可以正常修改,以避免复制向量带来的CPU和RAM开销.按照程序属于来说,R是按值传递,应该避免使用sort 类似的函数,会返回一个副本,资源开销至少和原对象一样大,甚至更大2.删除不在需要的中间数据注意 在调用rm()的时候,内存不会被立即释放并交还到操作系统,而是在必要的时候,或者当已删除对象的内存量超过…
本文对应<R语言实战>第6章:基本图形:第7章:基本统计分析 ================================================================================================================================================== 本章讨论的图形,主要用于分析数据前,对数据的初步掌握.想要对数据有一个初步的印象,最好的方式就是观察它,也就是将数据可视化.在这个过程中,我们…
数据框(data.frame)是最常用的数据结构,用于存储二维表(即关系表)的数据,每一列存储的数据类型必须相同,不同数据列的数据类型可以相同,也可以不同,但是每列的行数(长度)必须相同.数据框的每列都有唯一的名字,在已创建的数据框上,用户可以添加计算列,这样,R引擎根据同一行的数据列,计算出表达式的值,并把该值作为计算列的值.数据框是数据分析中最重要的数据对象,必须熟练掌握数据框的操作. 一,创建数据框 创建数据框,常用的方式是:读取文件.读取关系表和使用函数创建,用户应根据实际的需要,选择合…
一.基于S3的面向对象编程 基于S3的面向对象编程是一种基于泛型函数(generic function)的实现方式. 1.S3函数的创建 S3对象组成:generic(generic FUN)+method(generic.class FUN) 泛型函数(generic)创建示例: get_n_elements <- function(x,...) { UseMethod("get_n_elements") } 通常用UseMethod()函数定义一个泛型函数的名称,通过传入参数…
R的数据读入非常灵活,即可以在R软件中直接输入,也可以读入外部数据. 一.直接输入数据 ①c()函数 ②scan()函数 其功能类似c()函数,scan()实际上是一种键盘输入数据函数.当输入scan()并回车后,开始输入数据,数据之间用空格分开(c()函数用逗号分开).输入完成后,连续两次回车,结束输入. scan()函数还可以读入外部文本: 例如:x=scan(file="dat.txt") 如果源文件数据之间有逗号等分隔符,则读入时去掉分隔符: x=scan(file="…
3.1 使用图形 plot:基础绘图 abline:添加回归直线 hist:绘制直方图 boxplot:绘制箱线图 dev.new():returns the return value of the device opened, usually invisible NULL. dev.cur(): returns a length-one named integer vector giving the number and name of the active device, or 1, the…
一.模拟随机游走数据示例 x <- matrix(0,1000,1) for(i in 1:1000){ x[i+1] <- x[i]+rnorm(1) } plot(x,type="l") 输出结果 二.语法分解 1.plot()函数 plot(x, y, ...),参数x为x轴数据,参数y为y轴数据,后面的参数可以用type="l"(直线),type="p"(点) 2.rnorm()函数 rnorm(200),产生200个服从正态…
创建图形,保存图形,修改特征:标题,坐标轴,标签,颜色,线条,符号,文本标注. 1. 一个简单的例子 #输出到图形到pdf文件 pdf("mygrapg.pdf") attach(mtcars) #散点图 plot(wt~mpg) #添加趋势线 abline(lm(mpg~wt)) #添加标题 title("Regresion of mpg on weight") #输出到终端 dev.off() 2. 修改图形参数 par() 函数指定选项 符号和线条:pch:…