R语言为脚本语言,运算速度较慢,使用for循环等控制流会导致整个运算更慢
为此,R官方推出了apply家族,意在提供快速强大的循环操作。
apply经常配合R函数或自定义函数使用
#apply(matrix/array,1/2/3,fun)
#第一个参数需为矩阵或数组
#第二个参数1表示按行,2表示按列,3表示按数组中的表格
#第三个参数表示执行的函数
#计算行合计、列合计、合计 x <- cbind(x1 = 3, x2 = c(4:1, 2:5));x dimnames(x)[[1]] <- letters[1:8];x apply(x, 2, mean, trim = .2) col.sums <- apply(x, 2, sum) row.sums <- apply(x, 1, sum) rbind(cbind(x, Rtot = row.sums), Ctot = c(col.sums, sum(col.sums)))
lapply表示list apply,只是第一个参数代表的必须是list,无第二个参数,第三个参数同apply
其他sapply、vapply、mapply、tapply用的很少,各取所取吧