apply函数
1 根据factor,对vector进行分组,使用 split()函数。
例:根据f,对x分组
> groups <- split(x, f)
> groups <- unstack(data.frame(x,f))
返回一vector
2 对一个list每一个元素,都使用函数
lapply sapply 函数,
> lst <- lapply(lst, fun) 返回一个list
> vec <- sapply(lst, fun) 返回一个vector, 会以matrix形式
3 对matrix的每一行都使用函数
> results <- apply(mat, 1, fun) # mat is a matrix, fun is a function
第二个参数用 1 ,代表对行操作,返回matrix
4 对dataframe或者matrix的每一列使用函数
对于matrix
> results <- apply(mat, 2, fun)
对于dataframe
> lst <- lapply(dfrm, fun)
> vec <- sapply(dfrm, fun)
5 apply是用于处理matrix的
• 1 means process row by row.
• 2 means process column by column.
对于dataframe使用apply,会将其转换为matrix。注意,只有当dataframe包含同一种数据类型时
6 对于> cors <- sapply(pred, cor, y=resp)
计算pred和resp的相关性,对于sapply而言,第3个参数以后,将会传给cor
7 对分组的data,使用函数
> tapply(x, f, fun)
f是分组factor ,x 是数据,fun是函数
8 对分组的行使用函数
> by(dfrm, fact, fun) 返回一个list
9 confint() 置信区间
10
> mapply(f, vec1, vec2, ..., vecN)
> mapply(f, list1, list2, ..., listN)
mapply可以将标量函数,应用到数据