《R语言机器学习:实用案例分析》——1.3节使用函数

简介:

本节书摘来自华章社区《R语言机器学习:实用案例分析》一书中的第1章,第1.3节使用函数,作者[印度] 拉格哈夫·巴利(Raghav Bali)迪潘简·撒卡尔(Dipanjan Sarkar),更多章节内容可以访问云栖社区“华章社区”公众号查看

1.3 使用函数
接下来,我们将介绍函数。函数是一种有助于简单地结构化和模块化代码的技术或者方法,它是一组完成特定任务的具体代码行,当你需要执行该任务时可以直接执行该函数,而不需要再次编写它们。在R中,函数仅仅作为另一种数据类型,在需要时可以对函数进行赋值和操作,也可以将其作为参数传递给其他函数。下面将介绍这些内容。
1.3.1 内置函数
R由基础添加包中的许多函数构成,当你安装更多的添加包时,你也将以函数的形式获取更多的功能。在下面的例子中我们将看到一些新的内置函数:

> sqrt(5)
[1] 2.236068
> sqrt(c(1,2,3,4,5,6,7,8,9,10))
[1] 1.000000 1.414214 1.732051 2.000000 2.236068 2.449490 2.645751
[8] 2.828427 3.000000 3.162278
> # aggregating functions
> mean(c(1,2,3,4,5,6,7,8,9,10))
[1] 5.5
> median(c(1,2,3,4,5,6,7,8,9,10))
[1] 5.5

你可以从以上例子中看到,像mean、medium和sqrt这样的函数是内置函数。当你启动R时,无论何时都可以直接使用它们,而不必加载任何添加包或显式地定义这些函数。
1.3.2 用户自定义函数
你可以基于你想对数据执行的不同运算和计算来定义自己的函数,并让R按照你需要它们工作的方式来执行这些函数,这是R函数真正强大之处。如下面的例子所示:

square <- function(data){
return (data^2)
}
> square(5)
[1] 25
> square(c(1,2,3,4,5))
[1] 1 4 9 16 25
point <- function(xval, yval){
return (c(x=xval,y=yval))
}
> p1 <- point(5,6)
> p2 <- point(2,3)
>
> p1
x y
> square(c(1,2,3,4,5))
[1] 1 4 9 16 25
point <- function(xval, yval){
return (c(x=xval,y=yval))
}
> p1 <- point(5,6)
> p2 <- point(2,3)
>
> p1
x y
5 6
> p2
x y
2 3

正如我们在前面的代码片段中所看到的,我们可以定义像square一样的函数,使用相同的代码来计算一个数值的平方,甚至一个数值向量的平方。像point这样的函数可以用来表示特定实体,这些实体表示二维坐标空间中的点。现在我们将看到如何一起使用以上这些函数。
1.3.3 以参数形式传递函数
当你定义任何函数时,如果你需要在你的函数中使用其他函数执行一些复杂的计算,你也可以将这些函数作为参数进行传递。下面的例子使用前面定义的square函数来计算两点间的欧几里得距离,它把square函数作为参数进行传递:

> # defining the function
euclidean.distance <- function(point1, point2, square.func){
distance <- sqrt(
as.integer(
square.func(point1['x'] - point2['x'])
) +
as.integer(
square.func(point1['y'] - point2['y'])
)
)
return (c(distance=distance))
}
> # executing the function, passing square as argument
> euclidean.distance(point1 = p1, point2 = p2, square.func = square)
distance
4.242641
> euclidean.distance(point1 = p2, point2 = p1, square.func = square)
distance
4.242641
> euclidean.distance(point1 = point(10, 3), point2 = point(-4, 8),
square.func = square)
distance
14.86607

因此,你可以看到,使用函数你可以定义一次一个特定函数,你需要执行多少次就执行多少次。

相关文章
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
探索大数据分析的无限可能:R语言的应用与实践
探索大数据分析的无限可能:R语言的应用与实践
178 9
|
4月前
|
机器学习/深度学习 数据采集 分布式计算
大数据分析中的机器学习基础:从原理到实践
大数据分析中的机器学习基础:从原理到实践
192 3
|
9月前
|
机器学习/深度学习 算法 数据可视化
机器学习模型中特征贡献度分析:预测贡献与错误贡献
本文将探讨特征重要性与特征有效性之间的关系,并引入两个关键概念:预测贡献度和错误贡献度。
833 3
|
9月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
6月前
|
机器学习/深度学习 数据可视化 大数据
机器学习与大数据分析的结合:智能决策的新引擎
机器学习与大数据分析的结合:智能决策的新引擎
500 15
|
6月前
|
机器学习/深度学习 数据采集 运维
机器学习在运维中的实时分析应用:新时代的智能运维
机器学习在运维中的实时分析应用:新时代的智能运维
223 12
|
7月前
|
机器学习/深度学习 分布式计算 算法
【大数据分析&机器学习】分布式机器学习
本文主要介绍分布式机器学习基础知识,并介绍主流的分布式机器学习框架,结合实例介绍一些机器学习算法。
1046 6
|
8月前
|
机器学习/深度学习 数据可视化 数据挖掘
机器学习中空间和时间自相关的分析:从理论基础到实践应用
空间和时间自相关是数据分析中的重要概念,揭示了现象在空间和时间维度上的相互依赖关系。本文探讨了这些概念的理论基础,并通过野火风险预测的实际案例,展示了如何利用随机森林模型捕捉时空依赖性,提高预测准确性。
429 0
机器学习中空间和时间自相关的分析:从理论基础到实践应用
|
8月前
|
数据采集 移动开发 数据可视化
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
这篇文章介绍了数据清洗、分析、可视化、模型搭建、训练和预测的全过程,包括缺失值处理、异常值处理、特征选择、数据归一化等关键步骤,并展示了模型融合技术。
1121 1
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
|
8月前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
166 3