Sapply(),组合命令

时间:2014-04-23 08:14:00

标签: r sapply

我只是在和R一起玩耍,我将sapply()命令合并到一个表达式中时遇到了麻烦。

例如,我的数据表名为height_weight

我想计算通常的摘要统计信息:meanmedianmaxminimum以及从列2到{{1}的样本量}。

就像示例代码一样:

我用它来表示:

7

我只是想知道,我如何将两者合并为一个表达式?我尝试过将它们放在一起,但是会显示错误信息。

2 个答案:

答案 0 :(得分:0)

许多方法都可以。

E.g。使用summary和子集来获取相应的行

sapply(height_weight[2:7], summary)[c("Mean", "Max."), ]

或者使用一个未命名的自定义函数,将两个度量结合起来

sapply(height_weight[2:7], function(x) c(Mean=mean(x, na.rm=TRUE), Max=max(x, na.rm=TRUE)))

将两个功能放在一起是不行的,因为你只能给sapply一个功能。随后的所有内容都将传递给该函数。 (即,如果它不是sapply的参数。)

答案 1 :(得分:0)

如果您想计算通常的摘要统计信息,可以使用summary

summary(height_weight[2:7])
sapply(height_weight[2:7],summary) # just to use sapply

否则,如果你想定义自己的摘要统计数据(在本例中为mean和max),那么你可以像以前一样编写一个函数mysummary并使用sapply

mysummary <- function(x, ...) {
  c(mean=mean(x, ...),  
    max=max(x, ...))    
}
sapply(height_weight[2:7], mysummary , na.rm=TRUE)