使用apply函数族批量处理数据——apply家族
apply(x,MARGIN,FUN,…) #把FUN函数运用到x数据的第MARGIN维度上
lapply(x,FUN,…) #把函数FUN运用到列表的每一个元素
tapply(x,INDEX,FUN=NULL,…,simplify=TRUE) #把FUN函数根据INDEX索引应用到x数据
sapply(x,FUN,…,simplify=TRUE,USE.NAMES=TRUE)
#是lapply函数更友好的版本,可以使用simplify参数来调整输出的数据格式
vapply(x,FUN,FUN.VALUE,…,USE.NAMES=TRUE)
#类似于sapply,但是返回值只能按照预先指定的方式输出
mapply(FUN,…,MoreArgs=NULL,SIMPLIFY=TRUE,USE.NAMES=TRUE) #运用于多变量情况
示例:
str(apply) # str能以简洁的方式列出函数# 运行结果:# function (x, MARGIN, FUN, …)x <- matrix(1:20,ncol=4) # 创建一个五行四列的矩阵x# 运行结果:# [,1] [,2] [,3] [,4]# [1,] 1 6 11 16# [2,] 2 7 12 17# [3,] 3 8 13 18# [4,] 4 9 14 19# [5,] 5 10 15 20apply(x,1,mean) # 对行进行操作# 运行结果:# [1] 8.5 9.5 10.5 11.5 12.5apply(x,2,mean) # 对列进行操作# 运行结果:# [1] 3 8 13 18str(lapply) # str能以简洁的方式列出函数# 运行结果:# function (x, FUN, …)x <- list(a=1:5,b=exp(0:3))x# 运行结果:# $a# [1] 1 2 3 4 5## $b# [1] 1.000000 2.718282 7.389056 20.085537#lapply(x,mean)# 运行结果:# $a# [1] 3## $b# [1] 7.798219#str(sapply) # str能以简洁的方式列出函数# 运行结果:# function (X, FUN, …, simplify = TRUE, USE.NAMES = TRUE)list <- list(c("a","b","c"),c("A","B","C"))list# 运行结果:# [[1]]# [1] "a" "b" "c"## [[2]]# [1] "A" "B" "C"#sapply(list,paste,1:3,simplify=TRUE)# 运行结果:# [,1] [,2]# [1,] "a 1" "A 1"# [2,] "b 2" "B 2"# [3,] "c 3" "C 3"sapply(list,paste,1:3,simplify=FALSE)# 运行结果:# [[1]]# [1] "a 1" "b 2" "c 3"## [[2]]# [1] "A 1" "B 2" "C 3"#str(tapply) # str能以简洁的方式列出函数# 运行结果:# function (X, INDEX, FUN = NULL, …, default = NA, simplify = TRUE)height <- c(174,164,180,171,160)sex <- c("F","F","M","F","M")tapply(height,sex,mean)# 运行结果:# F M# 169.6667 170.0000str(mapply) # str能以简洁的方式列出函数# 运行结果:# function (FUN, ..., MoreArgs = NULL, SIMPLIFY = TRUE, USE.NAMES = TRUE)mapply(rep,times=1:3,MoreArgs=list(x=1:2))# 运行结果:# [[1]]# [1] 1 2## [[2]]# [1] 1 2 1 2## [[3]]# [1] 1 2 1 2 1 2mapply(rep,times=c(2,2),MoreArgs=list(x=1:2))# 运行结果:# [,1] [,2]# [1,] 1 1# [2,] 2 2# [3,] 1 1# [4,] 2 2

最后修改时间:2020-09-23 18:23:46
文章转载自大学生资料阁,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




