📅  最后修改于: 2023-12-03 15:09:06.770000             🧑  作者: Mango
在 R 中,数据框(data.frame)是处理数据的常见结构。当我们需要对数据框进行操作时,常常需要将函数应用于数据框中的某些列或行。本文将介绍如何在 R 中将函数应用于数据框。
apply() 函数可用于应用指定函数于数据框中的每一行或每一列。
以下示例演示了如何将函数应用于数据框每一行:
# 创建数据框
df <- data.frame(x = c(1, 2, 3), y = c(4, 5, 6), z = c(7, 8, 9))
# 定义函数,用于乘以每个元素
multiply <- function(row) {
row * 2
}
# 应用函数到每一行,并生成新的数据框
df_new <- apply(df, 1, multiply)
# 显示新的数据框
df_new
输出结果如下:
[,1] [,2] [,3]
[1,] 2 8 14
[2,] 4 10 16
[3,] 6 12 18
以下示例演示了如何将函数应用于数据框每一列:
# 创建数据框
df <- data.frame(x = c(1, 2, 3), y = c(4, 5, 6), z = c(7, 8, 9))
# 定义函数,用于乘以每个元素
multiply <- function(col) {
col * 2
}
# 应用函数到每一列,并生成新的数据框
df_new <- apply(df, 2, multiply)
# 显示新的数据框
df_new
输出结果如下:
x y z
1 2 8 14
2 4 10 16
3 6 12 18
mutate() 函数可用于处理数据框中的列,并生成新的列。以下示例演示了如何使用 mutate() 函数将函数应用于数据框:
# 加载 tidyverse 包
library(tidyverse)
# 创建数据框
df <- data.frame(x = c(1, 2, 3), y = c(4, 5, 6), z = c(7, 8, 9))
# 用 mutate() 函数将函数应用于数据框,生成新的列
df_new <- df %>%
mutate(new_col = x / y)
# 显示新的数据框
df_new
输出结果如下:
x y z new_col
1 1 4 7 0.2500000
2 2 5 8 0.4000000
3 3 6 9 0.5000000
lapply() 函数可用于应用指定函数于数据框中的每一列,并将结果存储到列表中。以下示例演示了如何将函数应用于数据框中的每一列:
# 创建数据框
df <- data.frame(x = c(1, 2, 3), y = c(4, 5, 6), z = c(7, 8, 9))
# 定义函数,用于乘以每个元素
multiply <- function(col) {
col * 2
}
# 应用函数到每一列,并将结果存储到列表中
result_list <- lapply(df, multiply)
# 显示结果列表
result_list
输出结果如下:
$x
[1] 2 4 6
$y
[1] 8 10 12
$z
[1] 14 16 18
sapply() 函数是 lapply() 函数的简化版本,会自动尝试将结果转换为向量或矩阵。以下示例演示了如何将函数应用于数据框中的每一列,并将结果存储为矩阵:
# 创建数据框
df <- data.frame(x = c(1, 2, 3), y = c(4, 5, 6), z = c(7, 8, 9))
# 定义函数,用于乘以每个元素
multiply <- function(col) {
col * 2
}
# 应用函数到每一列,并将结果存储为矩阵
result_matrix <- sapply(df, multiply)
# 显示结果矩阵
result_matrix
输出结果如下:
x y z
[1,] 2 8 14
[2,] 4 10 16
[3,] 6 12 18
以上就是在 R 中将函数应用于数据框的方法。无论您选择哪种方法,都能让您轻松处理数据框中的数据。