大数跨境
0
0

快速掌握apply函数家族推荐这篇文档

快速掌握apply函数家族推荐这篇文档 R语言数据分析指南
2022-12-21
2
导读:本节来介绍一下R语言中的apply函数家族,熟练掌握此函数能再数据处理的过程中游刃有余。

本节来介绍一下R语言中的apply函数家族,熟练掌握此函数能再数据处理的过程中游刃有余。

有需要学习数据可视化的朋友欢迎加入小编2022年度VIP群,目前群内已经上传公众号文档「数据+代码约270篇」VIP交流群(1)已经500人满员,随着内容不断增多,为了更好的创做内容现在进群需「付费149元」 年底临近「从即日起至12月底无需转发文档到朋友圈积赞,可直接已129元的价格入群」无需求请勿扰。

淘宝店铺个性化绘图服务

最近有部分观众老爷找小编做个性化绘图,为了给观众老爷提供更加优质的服务;小编开通了 「淘宝店铺(R语言数据分析指南)」 ,有特殊绘图需求的欢迎关注咨询

apply 家族是 R 语言中常用的函数,用于对列表、数组或其他类型的数据进行循环操作。

apply 家族包括以下几个函数:

lapply:用于遍历列表中的每一个元素,并对其执行函数操作。
sapply:与 lapply 类似,但它自动将结果转换为向量、矩阵或数组。
apply:用于对矩阵或数组的行、列或其他维度进行循环操作。
tapply:用于根据某个分组变量对数据进行分组,并对每组数据分别执行函数操作。

下面是 lapply 的基本语法:

lapply(数据, 函数)

其中,数据是一个列表或其他数据类型,函数是要对数据执行的操作。

例如,下面的代码使用 lapply 函数对列表中的每个字符串执行 toupper 函数,将其转换为大写:

# 创建列表
x <- list("apple""banana""cherry")

# 使用 lapply 函数对列表中的每个字符串执行 toupper 函数
lapply(x, toupper)
[[1]]
[1] "APPLE"

[[2]]
[1] "BANANA"

[[3]]
[1] "CHERRY"
注意,lapply 函数的返回值是一个列表,其中每个元素表示对应的数据执行函数后的结果。

如果想要将结果转换为向量、矩阵或数组,可以使用 sapply 函数。它的基本语法与 lapply 类似,只是将 lapply 替换为 sapply 即可。

例如,下面的代码使用 sapply 函数将列表中的每个字符串转换为大写:

# 创建列表
x <- list("apple""banana""cherry")

# 使用 sapply 函数对列表中的每个字符串执行 toupper 函数
sapply(x, toupper)
[1"APPLE"  "BANANA" "CHERRY"
注意,sapply 函数的返回值是一个向量,其中的每个元素表示对应的数据执行函数后的结果。

另外,apply 函数用于对矩阵或数组的行、列或其他维度进行循环操作。它的基本语法如下:

apply(矩阵或数组, 维度, 函数)

其中,矩阵或数组是要操作的数据,维度是指定要对哪一维度进行操作,函数是要对数据执行的操作。

例如,下面的代码使用 apply 函数求出矩阵中每一列的和:

# 创建矩阵
x <- matrix(1:9, nrow = 3)

# 使用 apply 函数求出矩阵中每一列的和
apply(x, 2, sum)
[1] 6 15 24

上面介绍了apply 家族函数的原理,下面来举几个使用 apply 家族函数处理数据的小例子:

例子 1:求出矩阵中每一列的最大值

下面的代码使用 apply 函数求出矩阵中每一列的最大值:

# 创建矩阵
x <- matrix(1:9, nrow = 3)

# 使用 apply 函数求出矩阵中每一列的最大值
apply(x, 2, max)
[1] 3 6 9

例子 2:使用 apply 函数将矩阵转置

下面的代码使用 apply 函数将矩阵转置:

# 创建矩阵
x <- matrix(1:9, nrow = 3)

# 使用 apply 函数将矩阵转置
apply(x, 1, function(row) row)
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

例子 3:使用 sapply 函数计算列表中所有数字的平方和 下面的代码使用 sapply 函数计算列表中所有数字的平方和:

# 创建列表
x <- list(1, 2, 3, 4, 5)

# 使用 sapply 函数计算列表中所有数字的平方和
sapply(x, function(x) x^2) %>% sum
[1] 55

例子 4:使用 tapply 函数根据性别分组并求平均身高

假设我们有以下数据,表示不同性别的人的身高:

# 创建数据框
df <- data.frame(
  gender = c("M""F""M""F""M""F"),
  height = c(170, 160, 175, 155, 180, 165)
)

# 使用 tapply 函数根据性别分组,并求出每组的平均身高
tapply(df$height, df$gender, mean)
     F      M 
162.50 176.67 
注意,tapply 函数的返回值是一个向量,其中的每个元素表示对应的分组的平均值。

总结

apply 家族是 R 语言中常用的函数,用于对列表、数组或其他类型的数据进行循环操作。它们包括 lapply、sapply、apply 和 tapply 函数,每个函数都有各自的用途。使用这些函数可以方便地对数据进行多种操作,提高编程效率。

小编微信

关注下方公众号下回更新不迷路

【声明】内容源于网络
0
0
R语言数据分析指南
R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
内容 1180
粉丝 0
R语言数据分析指南 R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
总阅读222
粉丝0
内容1.2k