Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R Sapply(),组合命令_R_Sapply - Fatal编程技术网

R Sapply(),组合命令

R Sapply(),组合命令,r,sapply,R,Sapply,我只是在玩,试着用R,我很难把我的妙语命令组合成一个表达式 例如,我的数据表名为height\u weight 我想计算通常的汇总统计数据:从第2列到第7列的平均值、中位数、最大值、最小值和样本量 正如示例代码: 我用这个来表示: sapply(height_weight[2:7],mean,na.rm=TRUE) max; sapply(height_weight[2:7],max,na.rm=TRUE) 我只是想知道,我该如何把这两个词组合成一个表达式?我试着简单地将它们放在一起,但是这

我只是在玩,试着用R,我很难把我的妙语命令组合成一个表达式

例如,我的数据表名为height\u weight

我想计算通常的汇总统计数据:从第2列到第7列的平均值、中位数、最大值、最小值和样本量

正如示例代码:

我用这个来表示:

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

max;
sapply(height_weight[2:7],max,na.rm=TRUE)
我只是想知道,我该如何把这两个词组合成一个表达式?我试着简单地将它们放在一起,但是这会显示一条错误消息。

有很多方法可以做到这一点

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

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的参数。

如果要计算常用的汇总统计信息,可以使用汇总:

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

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

我不确定我是否理解你的答案,但为了我最大的理解,请尝试下面的-x谢谢,第一行代码成功了。我设法找到了每列的最小值。但是,如果我希望计算每列的样本大小和每列的st dev。我是否会将sd和sample.size添加到sapplyheight_weight[2:7],summary[cMean,Max,]…?Hm数据框中的每列都具有相同的长度/大小。sapply以sapply对象、函数应用列、参数1toPassToFunction、[参数2toPassToFunction等]的形式工作。所以我们在每一列上使用了summary函数。这提供了比mean和max多一点的信息,所以我们从结果中只提取了这两个。最好提供一个完整的可复制的例子来说明你的问题。对不起,我不太明白。我理解,因为摘要函数包括mean、max和min…因此我们可以看到它。我想知道如何添加sd和sample.size,因为它们都是函数。我尝试在summary函数之前添加sd,sapplyheight\u-weight[2:7],sd,summary[cMean,Max,]但是我得到了这个错误,如果na.rm na.or.complete else所有内容:参数不能解释为逻辑。我说过,sapplyheight\u-weight[2:7],sd,summary会将summary函数作为参数传递给sd函数,这没有任何意义。rbindsapplyheight\u-weight[2:7],sd,na.rm=true有意义,就像sapplyheight\u-weight[2:7],sample.size一样,我不知道这个函数。您还可以编写自定义函数,就像我在第二个示例中所做的那样,这些函数组合了结果。或者你可以找到两个sapply的结果等等。发布一个产生错误的可复制示例,请阅读此。
mysummary <- function(x, ...) {
  c(mean=mean(x, ...),  
    max=max(x, ...))    
}
sapply(height_weight[2:7], mysummary , na.rm=TRUE)