我只是在玩和试用R,我很难将我的sapply()命令合并成一个表达式。
例如,我的数据表名为height_weight。
我要计算通常的汇总统计:mean,median,max,minimum和样本大小,从2列到7。
就像样例代码:
我用这个来刻薄:
sapply(height_weight[2:7],mean,na.rm=TRUE)
max;
sapply(height_weight[2:7],max,na.rm=TRUE)我只是在想,我怎么把这两者结合成一个表达式呢?我试过简单地将它们放在一起,但是这会显示一个错误消息。
发布于 2014-04-23 08:26:27
这样做的方法有很多。
例如,对适当的行使用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的参数。)
发布于 2014-04-23 08:27:06
如果要计算通常的汇总统计数据,只需使用summary:
summary(height_weight[2:7])
sapply(height_weight[2:7],summary) # just to use sapply否则,如果您想要定义您自己的摘要统计信息(在本例中是平均值和最大值),那么您可以编写一个函数my汇总,并像前面一样使用sapply:
mysummary <- function(x, ...) {
c(mean=mean(x, ...),
max=max(x, ...))
}
sapply(height_weight[2:7], mysummary , na.rm=TRUE)https://stackoverflow.com/questions/23238552
复制相似问题