R 中带有示例的 Apply(), lapply(), sapply(), tapply() 函数2025年3月17日 | 阅读 7 分钟 R 中的 apply() 函数在 R 中,使用 apply() 函数可以对矩阵、数组或列表应用函数。对于对这些结构中保存的数据执行操作,这是一个非常有用的函数。 以下是 apply() 函数的语法 apply(X, MARGIN, FUN, ...) 这里;
以下是 apply() 的一些示例示例 1:按行对矩阵应用函数 假设我们有如下所示的矩阵 可以使用 Apply() 确定每一行的平均值 输出 ![]() 示例 2:按列对矩阵应用函数 可以使用 Apply() 确定矩阵 m 的每一列的标准差 输出 ![]() 示例 3:对列表应用函数 考虑一个向量列表 可以使用 Apply() 确定每个向量的总和 输出 将以此方式报告列表中每个向量的总和 ![]() 注意:由于我们要将该函数应用于列表中的每个向量,因此在此实例中,我们使用 1 作为 MARGIN 的值(即,沿第一个边距)。示例 4:将用户定义的函数应用于矩阵的行 假设我们有如下所示的矩阵 Apply() 允许我们将用户定义的函数应用于每一行 输出 ![]() 在此示例中,f() 函数计算每一行的平方和。 总而言之,apply() 是一个相当强大的函数,可以以多种不同的方式应用于操作矩阵、数组和列表。 R 中的 lapply() 函数R 编程语言的一个有用功能是 lapply() 函数,它使您可以将特定函数应用于列表或向量中的每个元素。输出生成一个与输入长度相同的列表,其中每个条目表示将指定函数应用于其对应输入元素的结果。 lapply() 函数的底层语法如下 在这种情况下,FUN 是将应用于 X 的每个成员的函数。X 是输入列表或向量。您可以通过将其作为“... argument”传递来向 FUN 函数添加更多参数。 lapply() 的一些示例示例 1 让我们看一个说明如何使用 R 的 lapply() 函数的示例。 假设我们要确定数字列表中每个数字的平方根。列表中的每个元素都可以使用 lapply() 方法应用 sqrt() 函数。这是关键 代码 输出 ![]() 正如您所看到的,lapply() 函数将 sqrt() 函数应用于列表中的每个元素,然后返回一个与输入长度相同的列表,其中包含相应输入元素的平方根的元素。 示例 2 lapply() 函数也可以与用户定义的函数一起使用。例如,让我们创建一个函数,该函数将 10 添加到给定的整数,然后将此函数应用于列表中的每个项目 代码 输出 ![]() 在此实例中,lapply() 函数将 add 10() 函数应用于列表的每个元素,这导致生成一个与输入长度相同的列表,其中包含将 10 添加到其对应输入元素的结果的每个元素。 重要的是要记住,无论输入是什么,lapply() 方法总是生成一个列表。例如,在向量上使用 lapply() 方法的结果仍然是一个列表:这是一个例子来说明这一点。 代码 输出 ![]() 在此实例中,在 lapply() 方法将输入向量转换为列表后,使用了 sqrt() 函数。 R 中的 sapply() 函数R 编程语言的一个有用功能是 sapply() 函数,该函数可用于简化将指定函数应用于列表或向量的每个元素的代码。将生成一个与输入长度或维度相同的向量或矩阵作为输出,其中每个元素都是将指定函数应用于其对应输入元素的结果。 sapply() 函数的语法如下 在这种情况下,FUN 是将应用于 X 的每个成员的函数。X 是输入列表或向量。默认情况下,simplify 参数设置为 TRUE,这意味着如果函数的输出是向量或矩阵,则结果也将是向量或矩阵。要向 FUN 函数发送更多参数,请使用“... argument”。 让我们看一个说明如何使用 R 的 sapply() 函数的示例。 假设我们要确定数字列表中每个数字的平方根。可以使用 sapply() 方法将 sqrt() 函数应用于列表中的每个元素。这是关键 代码 输出 ![]() 正如您所看到的,sapply() 方法获取了列表中的每个元素,并将 sqrt() 函数应用于它。然后,它返回一个与输入长度相同的向量,其中每个元素都是其对应输入元素的平方根。 sapply() 函数也可以与用户定义的函数一起使用。例如,让我们创建一个函数,该函数将 10 添加到给定的整数,然后将此函数应用于列表中的每个项目 代码 输出 ![]() 在此实例中,sapply() 函数使用 add 10() 函数将 10 添加到列表的每个元素,返回一个与输入长度相同的向量,其中每个元素是加 10 的结果。 记住 sapply() 函数也适用于向量,这一点至关重要。在这种情况下,结果仍然是一个向量 代码 输出 ![]() 在这种情况下,sapply() 方法将输入向量视为列表,并将 sqrt() 函数应用于每个元素,返回一个与输入长度相同的向量,其中每个元素都是其对应输入元素的平方根。 R 中的 tapply() 函数对于基于另一个变量的值将指定函数应用于向量或数组的子集,R 语言的 tapply() 函数是一个有用的工具。根据所使用的函数,输出是一个向量、数组或列表。 tapply() 函数的基本语法如下 tapply(X, INDEX, FUN, ...) 这里,FUN 是要应用于每个子集的函数,X 是输入向量或数组,INDEX 是一个或多个因子的列表,表示子集,... 是可以提供给 FUN 函数的可选参数。 让我们看一个说明如何使用 R 的 tapply() 函数的示例。 假设我们有一个类别向量和一个数字向量。我们正在寻找每个类别的平均值。 可以使用 tapply() 函数将 mean() 函数应用于向量的每个子集,具体取决于类别。代码在这里; 代码 输出 ![]() 正如您所看到的,tapply() 函数使用 mean() 函数根据类别分析向量的每个子集,返回一个带有每个类别结果的命名向量。 结论通过使用 R 的 sapply() 函数将给定的函数应用于列表或向量的每个元素,可以获得与输入长度或维度相同的简化向量或矩阵。 开发代码可以节省大量时间和精力,尤其是在处理大型数据集时。此外,sapply() 方法是一个灵活的函数,可以与列表、向量以及内置和用户定义的函数一起使用。 所有使用 R 并处理数据处理和分析的人都应该熟悉此函数。 下一主题R 中泊松函数编程 |
我们请求您订阅我们的新闻通讯以获取最新更新。