首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sapply(),组合命令

Sapply(),组合命令
EN

Stack Overflow用户
提问于 2014-04-23 08:14:00
回答 2查看 319关注 0票数 0

我只是在玩和试用R,我很难将我的sapply()命令合并成一个表达式。

例如,我的数据表名为height_weight

我要计算通常的汇总统计:meanmedianmaxminimum和样本大小,从2列到7

就像样例代码:

我用这个来刻薄:

代码语言:javascript
复制
sapply(height_weight[2:7],mean,na.rm=TRUE)

max;
sapply(height_weight[2:7],max,na.rm=TRUE)

我只是在想,我怎么把这两者结合成一个表达式呢?我试过简单地将它们放在一起,但是这会显示一个错误消息。

EN

回答 2

Stack Overflow用户

发布于 2014-04-23 08:26:27

这样做的方法有很多。

例如,对适当的行使用summary和子集

代码语言:javascript
复制
sapply(height_weight[2:7], summary)[c("Mean", "Max."), ]

或者使用一个未命名的自定义函数来组合这两个度量作为结果。

代码语言:javascript
复制
sapply(height_weight[2:7], function(x) c(Mean=mean(x, na.rm=TRUE), Max=max(x, na.rm=TRUE)))

将这两个函数放在一起不起作用,因为您只能给sapply一个函数。接下来的一切都将传递给这一功能。(也就是说,如果它不是sapply的参数。)

票数 0
EN

Stack Overflow用户

发布于 2014-04-23 08:27:06

如果要计算通常的汇总统计数据,只需使用summary

代码语言:javascript
复制
summary(height_weight[2:7])
sapply(height_weight[2:7],summary) # just to use sapply

否则,如果您想要定义您自己的摘要统计信息(在本例中是平均值和最大值),那么您可以编写一个函数my汇总,并像前面一样使用sapply

代码语言:javascript
复制
mysummary <- function(x, ...) {
  c(mean=mean(x, ...),  
    max=max(x, ...))    
}
sapply(height_weight[2:7], mysummary , na.rm=TRUE)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23238552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档