什么"修剪"意思是" apply()"?

时间:2014-04-18 11:50:05

标签: r

论证是什么" trim"表示" apply()"?

For example,我想计算数组x每列的平均值:

apply(x, 2, mean, trim = .2)

有什么不同
apply(x, 2, mean)

我应该使用哪一个?

如果我想计算数组x每列的标准差,我应该使用哪一列

apply(x, 2, sd, trim = .2)

apply(x, 2, sd)

谢谢!

2 个答案:

答案 0 :(得分:12)

trim参数与apply无关,而与mean有关。

来自?mean

  

trim:在计算平均值之前从x的每一端修剪的观测值的分数(0到0.5)。该范围之外的微调值被视为最近的终点。

sd没有名为trim的参数,因此如果您尝试使用apply(x, 2, sd, trim = .2),则会收到有关尝试使用未使用参数的错误。


这不是apply的参数,但它是使用applymean传递到...的参数:

来自?apply

  

...FUN的可选参数。

这增加了灵活性并减少了对创建匿名函数的依赖性。例如,如果没有...参数,如果您想要修剪均值,则必须执行以下操作:

apply(x, 2, function(x) mean(x, trim = .2))

答案 1 :(得分:-1)

刚刚尝试使用dplyr,它似乎工作正常。

df <- x %>%
    select(V1:V7) %>%
    summarise_each(funs(mean(., na.rm=T, trim=0.2)))