sweep package:base R Documentation _S_w_e_e_p _o_u_t _A_r_r_a_y _S_u_m_m_a_r_i_e_s _D_e_s_c_r_i_p_t_i_o_n: Return an array obtained from an input array by sweeping out a summary statistic. _U_s_a_g_e: sweep(x, MARGIN, STATS, FUN="-", check.margin=TRUE, ...) _A_r_g_u_m_e_n_t_s: x: an array. MARGIN: a vector of indices giving the extents of 'x' which correspond to 'STATS'. STATS: the summary statistic which is to be swept out. FUN: the function to be used to carry out the sweep. In the case of binary operators such as '"/"' etc., the function name must backquoted or quoted. ('FUN' is found by a call to 'match.fun'.) check.margin: logical. If 'TRUE' (the default), warn if the length or dimensions of 'STATS' do not match the specified dimensions of 'x'. Set to 'FALSE' for a small speed gain when you _know_ that dimensions match. ...: optional arguments to 'FUN'. _D_e_t_a_i_l_s: The consistency check among 'STATS', 'MARGIN' and 'x' is stricter if 'STATS' is an array than if it is a vector. In the vector case, some kinds of recycling are allowed without a warning. Use 'sweep(x,MARGIN,as.array(STATS))' if 'STATS' is a vector and you want to be warned if any recycling occurs. _V_a_l_u_e: An array with the same shape as 'x', but with the summary statistics swept out. _R_e_f_e_r_e_n_c_e_s: Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S Language_. Wadsworth & Brooks/Cole. _S_e_e _A_l_s_o: 'apply' on which 'sweep' used to be based; 'scale' for centering and scaling. _E_x_a_m_p_l_e_s: require(stats) # for median med.att <- apply(attitude, 2, median) sweep(data.matrix(attitude), 2, med.att)# subtract the column medians ## More sweeping: A <- array(1:24, dim = 4:2) ## no warnings in normal use sweep(A, 1, 5) (A.min <- apply(A, 1, min)) # == 1:4 sweep(A, 1, A.min) sweep(A, 1:2, apply(A, 1:2, median)) ## warnings when mismatch sweep(A, 1, 1:3)## STATS does not recycle sweep(A, 1, 6:1)## STATS is longer ## exact recycling: sweep(A, 1, 1:2)## no warning sweep(A, 1, as.array(1:2))## warning