📜  在 R 编程中对数组或矩阵的边距执行操作 – apply()函数(1)

📅  最后修改于: 2023-12-03 14:51:08.315000             🧑  作者: Mango

在 R 编程中对数组或矩阵的边距执行操作 – apply()函数

在 R 编程中,对数组或矩阵的边距执行操作是一项常见的任务。使用apply()函数可以轻松完成这个任务。该函数允许您对矩阵的每一行或每一列执行函数,并返回结果。

语法

apply(X, MARGIN, FUN, ...)

参数说明:

  • X: 数据对象,可以是数组、矩阵或列表。
  • MARGIN: 整数向量,用于指定应在哪个边距执行操作。取值范围为1和2。
    • 当MARGIN=1时,函数将作用于行。
    • 当MARGIN=2时,函数将作用于列。
  • FUN: 表示应用到每个元素的函数
  • ...: 可选的参数传递给FUN。
示例

假设我们有一个3x3的矩阵:

mat <- matrix(1:9, nrow=3)
mat
#>      [,1] [,2] [,3]
#> [1,]    1    4    7
#> [2,]    2    5    8
#> [3,]    3    6    9

我们想要计算每行/每列的总和:

# 对行执行操作
apply(mat, 1, sum)
#> [1] 12 15 18

# 对列执行操作
apply(mat, 2, sum)
#> [1]  6 15 24

我们还可以用apply()函数来执行自定义函数。例如,假设我们有一个函数,计算一个数是否为奇数:

is_odd <- function(x) {
    if (x %% 2 == 1) {
        return(TRUE)
    } else {
        return(FALSE)
    }
}

我们可以使用apply()函数来检查矩阵中的每个元素是否为奇数:

# 单元格级别上执行操作
apply(mat, c(1, 2), is_odd)
#>      [,1]  [,2]  [,3]
#> [1,] TRUE FALSE FALSE
#> [2,] FALSE  TRUE FALSE
#> [3,] TRUE FALSE FALSE

在此示例中,我们将 apply()函数用于每个单元格,而不是每行/列。

总结

使用apply()函数可以轻松地对数组或矩阵的边距执行操作,并返回结果。apply()函数允许您将任意函数应用于整行、整列或单个单元格级别的矩阵元素上。此功能使它成为R语言中一项极其强大的工具。