sweep函数用于统一处理

#用法
sweep(x, MARGIN, STATS, FUN="-", check.margin = TRUE, ...)

#x:即要处理的原数据集
#MARGIN:对行或列,或者数列的其他维度进行操作,与apply的用法一样,MARGIN=1表示行,MARGIN=2表示列
#STATS:需要对原数据集操作用到的统计量
#FUN:操作需要用到的四则运算,默认为减法"-",当然也可以修改成"+","*","/",即加、乘、除
#check.margin:是否需要检查维度是否适宜的问题,默认为TRUE。

例样:
创建一个4行3列的矩阵
M = matrix( 1:12, ncol=3)

image.png

操作:

1.每一行都减去这一行的均值
方法一,通过rowMeans函数来计算每一行的均值
sweep(M,1,rowMeans(M))
方法二,通过apply函数来计算每一行的均值,MARGIN=1,对行做操作sweep(M,1,apply(M,1,mean))

image.png

2.每一行列都减去这一列的均值

方法一,通过colMeans函数来计算每一列的均值
sweep(M,2,colMeans(M))
方法二,通过apply函数来计算每一列的均值,MARGIN=2,对列做操作
sweep(M,2,apply(M,2,mean))

image.png

3.四行分别加上1,2,3,4

sweep (M, 1, c(1: 4), "+")

image.png

你可能感兴趣的:(sweep函数用于统一处理)