Skip to Content
R 语言经典实例(原书第 2 版)
book

R 语言经典实例(原书第 2 版)

by J.D. Long, Paul Teetor
June 2020
Beginner to intermediate
522 pages
9h 6m
Chinese
China Machine Press
Content preview from R 语言经典实例(原书第 2 版)
460
15
但是,坦率地说,这也说明了循环在 R 中比在其他编程语言中更少见的一个原因。R
向量化操作快速简便,通常不需要显式的循环。这是前一个示例的向量化版本:
v <- 1:5
v <- v^2
print(v)
#> [1] 1 4 9 16 25
15.2.4 另请参阅
循环很少使用的另一个原因是函数 map 和类似函数可以同时处理整个向量和列表,通常
比循环更快速、更容易。有关使用 purrr 添加包将函数应用于列表的详细信息,请参
6.1 节。
15.3 定义一个函数
15.3.1 问题
需要定义一个新的 R 函数。
15.3.2 解决方案
使用 function 关键字后跟参数名称列表以及函数体的方法来创建函数:
name <- function(
param1
, ...,
paramN
) {
expr1
.
.
.
exprM
}
参数放在圆括号内,函数体是一个或多个表达式序列,需要把函数体的全部内容放在
大括号内。R 将按顺序对每个表达式求值,并返回最后一个表达式的值,此处表示为
exprM
15.3.3 讨论
函数定义的内容是你告诉 R 如何进行计算的方法。例如,R 没有用于计算变异系数的内
置函数,但我们可以创建这样一个函数,称之为 cv
cv <- function(x) {
sd(x) / mean(x)
}
简单编程
461
该函数有一个参数 x,函数体是 sd(x)/mean(x)。当我们用一个参数调用该函数时,
R 会将参数 x 设置为该值,然后对函数体求值:
cv(1:10) ...
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

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

Aurélien Géron
大规模数据分析和建模:基于 Spark 与 R

大规模数据分析和建模:基于 Spark 与 R

Javier Luraschi, Kevin Kuo, Edgar Ruiz
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey

Publisher Resources

ISBN: 9787111656814