1)apply
apply函數(shù) 將數(shù)據(jù)框或矩陣作為輸入媳荒, 用于遍歷數(shù)組中的行或列
apply(x, MARGIN, FUN, ...)
####MARGIN按行計(jì)算或按列計(jì)算,1表示按行驹饺,2表示按列
#####FUN(mean,median.....),也可以使用自定義的函數(shù)
a<-as.matrix(1:12,c(3,4))
apply(a,1,function(x) x^2)
b=function(x) {x^2}
apply(a,1,b)
###########一個(gè)小測試钳枕,添加計(jì)算得到的平均值
Student <- c("John Davis", "Angela Williams", "Bullwinkle Moose",
? ? ? ? ? ? "David Jones", "Janice Markhammer", "Cheryl Cushing",
? ? ? ? ? ? "Reuven Ytzrhak", "Greg Knox", "Joel England",
? ? ? ? ? ? "Mary Rayburn")
Math <- c(502, 600, 412, 358, 495, 512, 410, 625, 573, 522)
Science <- c(95, 99, 80, 82, 75, 85, 80, 95, 89, 86)
English <- c(25, 22, 18, 15, 20, 28, 15, 30, 27, 18)
roster <- data.frame(Student, Math, Science, English, stringsAsFactors=FALSE)
z <- roster[,2:4]
score <- apply(z, 1, mean)
for(i in (1:length(score)))
{
? roster$mean[i] = score[i]?
}
#######apply函數(shù)與which的結(jié)合
pos=which.max(apply(RNAseq_expr,1,mad))
a[which.max(apply(a,1,mad)),]
2)lapply()函數(shù)
lapply()函數(shù)可用于對(duì)列表對(duì)象執(zhí)行操作,并返回與原始集合長度相同的列表對(duì)象赏壹。lappy()返回一個(gè)長度與輸入列表對(duì)象相似的列表鱼炒,其每個(gè)元素都是將FUN應(yīng)用于列表的相應(yīng)元素的結(jié)果。lapply()將列表卡儒,向量或數(shù)據(jù)框作為輸入田柔,并在列表中給出輸出。
我們可以使用unlist()將列表轉(zhuǎn)換為向量骨望。
3)sapply()函數(shù)將列表硬爆,向量或數(shù)據(jù)幀作為輸入,并以向量或矩陣形式輸出擎鸠。它對(duì)列表對(duì)象的操作很有用缀磕,并返回與原始集合長度相同的列表對(duì)象。sapply()函數(shù)執(zhí)行的功能與lapply()函數(shù)相同劣光,但返回一個(gè)向量袜蚕。
你可以使用函數(shù)sapply()提取列表中每個(gè)成分的第一個(gè)元素,放入一個(gè)儲(chǔ)存名字
的向量Firstname绢涡,并提取每個(gè)成分的第二個(gè)元素牲剃,放入一個(gè)儲(chǔ)存姓氏的向量Lastname。"["
是一個(gè)可以提取某個(gè)對(duì)象的一部分的函數(shù)雄可,在這里它是用來提取列表name各成分中的第一
個(gè)或第二個(gè)元素的凿傅。Student <- c("John Davis", "Angela Williams", "Bullwinkle Moose",
? ? ? ? ? ? "David Jones", "Janice Markhammer", "Cheryl Cushing",
? ? ? ? ? ? "Reuven Ytzrhak", "Greg Knox", "Joel England",
? ? ? ? ? ? "Mary Rayburn")
name <- strsplit(Student, " ")
Lastname <- sapply(name, "[", 2)? ?####sapply函數(shù)可提取列表中數(shù)據(jù),提取列表的第2個(gè)元素
Firstname <- sapply(name, "[", 1)? #####数苫,提取列表的第1個(gè)元素
4)tapply()函數(shù)
tapply()計(jì)算向量中每個(gè)因子變量的度量(均值聪舒,中位數(shù),最小值虐急,最大值等)或函數(shù)箱残。這是一項(xiàng)非常有用的功能,可讓您創(chuàng)建向量的子集止吁,然后將某些功能應(yīng)用于每個(gè)子集被辑。
參數(shù):
vector:創(chuàng)建向量
factor:創(chuàng)造因子
fun:要應(yīng)用的函數(shù)
data(iris)
tapply(iris$Sepal.Width, iris$Species, median)
更詳細(xì)的介紹參考
R語言學(xué)習(xí)記錄:apply燎悍、lapply、sapply敷待、mapply间涵、tapply函數(shù)_fancykoi的博客-CSDN博客