优秀的编程知识分享平台

网站首页 > 技术文章 正文

R语言-常用的apply族函数(r语言函数大全)

nanyue 2024-08-06 18:08:00 技术文章 4 ℃

1. apply 对数组或者矩阵行或者列使用函数

用法:apply(X, MARGIN, FUN, ...)

  • X:矩阵或数组;

  • MARGIN:1表示行,2表示列,也可以是c(1,2);

  • FUN:应用的函数;

  • ···:所应用的函数的参数;

x <- cbind(x1 = 3, x2 = c(4:1, 2:5))
dimnames(x)[[1]] <- letters[1:8]
x #x为矩阵
## x1 x2
# 计算矩阵x的每列均值:
col.sums <- apply(X = x, MARGIN = 2, FUN = mean)
# 计算矩阵x的每行均值:
row.sums <- apply(X = x, MARGIN = 1, FUN = mean)
# 在原矩阵的基础上增加边际和:
rbind(cbind(x, Rtot = row.sums), Ctot = c(col.sums, sum(col.sums)))
## x1 x2 Rtot
# 对矩阵x的列进行排序:
apply(X = x, MARGIN = 2, FUN = sort)
## x1 x2

2. lapply 对列表或者向量使用函数

用法:lapply(X, FUN, ...)

x <- list(a = 1:10, beta = exp(-3:3), logic = c(TRUE, FALSE, FALSE, TRUE))
x #列表x有3个元素
## $a
lapply(X = x, FUN = mean) #计算列表x的每个元素的均值
## $a
lapply(X = x, FUN = quantile, probs = 1:3/4) #计算列表的分位数
## $a

3. sapply 对列表或者向量使用函数,是lapply的友好版本

用法:sapply(X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE)

x <- list(a = 1:10, beta = exp(-3:3), logic = c(TRUE, FALSE, FALSE, TRUE))
sapply(X = x, FUN = mean)
## a beta logic
i39 <- sapply(3:9, seq) #生成一个列表
i39
## [[1]]
sapply(i39, fivenum) #统计列表每个元素的五数总括
## [,1] [,2] [,3] [,4] [,5] [,6] [,7]

Tags:

最近发表
标签列表