Skip to Content
高效R语言编程
book

高效R语言编程

by Colin Gillespie, Robin Lovelace
August 2018
Intermediate to advanced
227 pages
4h 16m
Chinese
China Electric Power Press Ltd.
Content preview from 高效R语言编程
58
3
方法
2
创建实际长度的对象而后通过下标方式赋值:
method2 = function(n) {
vec = numeric(n)
for(i in seq_len(n))
vec[i] = i
vec
}
方法
3
直接创建最终对象:
method3 = function(n) seq_len(n)
我们使用了上一章的 microbenchmark() 函数对比三种方法的性能:
microbenchmark(times = 100, unit = "s",
method1(n), method2(n), method3(n))
3-1
展示了三种方法在不同的 n 值情况下,在计算机上的运行时间,结果
以秒为单位。n 在双对数坐标下大致线性增长,但三种方法的执行时间迥异。
注意,时间差异不再是微不足道的
。当
n
=10
7
时,第一种方法花费了大约一
个小时,而第二种方法花费了两秒,令人惊奇的是第三种方法几乎是瞬时的。
请记住黄金法则:尽可能快地调用底层的
C/Fortran
代码。
3
-
1
生成序列的时间(以秒为单位)。当 n=
10
7
,方法
1
花费了近
1
小时,而其他不到
3
n
方法
1
方法
2
方法
3
10
5
0.21 0.02 0.00
10
6
25.50 0.22 0.00
10
7
3827.00 2.21 0.00
向量化代码
严格来说 x =1 是创建了一个长度为
1
的向量。本节,我们使用向量化来演示
x=1 可处理所有长度的向量。
回忆一下前述的黄金法则:尽可能快地访问底层的 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

数据科学之编程技术:使用R进行数据清理、分析与可视化

数据科学之编程技术:使用R进行数据清理、分析与可视化

迈克尔 弗里曼, 乔尔 罗斯
R数据科学

R数据科学

Hadley Wickham, Garrett Grolemund

Publisher Resources

ISBN: 9787519820855