❝本节来介绍一下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 函数,每个函数都有各自的用途。使用这些函数可以方便地对数据进行多种操作,提高编程效率。
❞
小编微信


