apply函数族

2022-02-01  本文已影响0人  萍智医信

1.apply 处理矩阵或数据框

apply(X, MARGIN, FUN, …)

其中X是数据框/矩阵名;

MARGIN为1表示取行,为2表示取列,FUN是函数

test<- iris[,1:4]
head(test)
apply(test, 2, mean)
head(apply(test, 1, sum))

2.lapply(list, FUN, …)

# 对列表/向量中的每个元素(向量)实施相同的操作
test <- list(x = 36:33,
             y = 32:35,
             z = 30:27)
#返回值是列表,对列表中的每个元素(向量)求均值(试试方差var,分位数quantile)
lapply(test,mean)
class(lapply(test,mean))
x <- unlist(lapply(test,mean));x
class(x)

3.sapply 处理列表,简化结果,直接返回矩阵和向量

sapply(X, FUN, …) 注意和lapply的区别,返回值不一样


-------------------------练习------------------------------

##方差最大1000个基因名
x=names(tail(sort(apply(test,1,var)),1000))
##提取这1000个基因表达量
test[x,]
##画箱线图
boxplot(test[1,]~rep(c("a","b"),3))

##对这1000基因表达量画热图
pheatmap::pheatmap(test[x,],show_rownames = F)

参考资料:生信技能树-小洁老师

上一篇 下一篇

猜你喜欢

热点阅读