官术网_书友最值得收藏!

Applying families of functions 

The apply family of functions allow users to easily apply custom vector functions on matrices, lists, and other R data structures. Operations such as summing by rows and columns or more complex ones, such as functions with conditional logic, can be applied using apply commands. These are extremely convenient, not only from an ease-of-use perspective but also from a performance standpoint. In general, vectorised operations will almost always be faster and more efficient than looping, such as with for-next loops in R:

# apply 
 
# Usage 
#  
# apply(X, MARGIN, FUN, ...) 
# Arguments 
#  
# X: an array, including a matrix. 
# MARGIN: a vector giving the subscripts which the function will be applied over. E.g., for a matrix 1 indicates  
# rows, 2 indicates columns, c(1, 2) indicates rows and columns. Where X has named dimnames, it can be a  
# character vector selecting dimension names. 
 
apply(state[,-ncol(state)], 2, sum) # Sum of all values in the numeric columns 
apply(state[,-ncol(state)], 2, mean) # Mean of all values in the numeric columns 

The output is as follows:

lapply, which belongs to the apply family of functions, is used to the apply functions on lists in R:

# lapply - list apply which is similar to apply, but can be also used for other R object types
## Produces the output as a list
lapply(state[,-ncol(state)], function(x) {list(MIN=min(x), MAX=max(x), MEAN=mean(x))})

The output is as follows:

 sapply—it provides the same functionality as lapply but, instead of a list output, sapply returns the result as a vector:

# sapply - simplifies the output (eg., produce a vector instead of a list) 
sapply(state[,-ncol(state)], function(x) {list(MIN=min(x), MAX=max(x), MEAN=mean(x))}) 

The output of the preceding code is as follows:

主站蜘蛛池模板: 嘉荫县| 五常市| 绥中县| 花莲县| 太仆寺旗| 原阳县| 洛扎县| 洛浦县| 玉树县| 锡林浩特市| 新沂市| 察哈| 九龙坡区| 榆林市| 兰考县| 伊宁市| 汉中市| 当涂县| 福清市| 汽车| 石河子市| 江口县| 简阳市| 嘉定区| 古田县| 荆门市| 北碚区| 恩平市| 嵊州市| 宁国市| 武陟县| 应城市| 黄浦区| 台中市| 衡山县| 云林县| 宁津县| 通海县| 米泉市| 高平市| 延川县|