gpt4 book ai didi

r - 来自数据框中的行值的平均值,不包括 R 中的最小值和最大值

转载 作者:行者123 更新时间:2023-12-01 23:25:21 27 4
gpt4 key购买 nike

我得到了以下数据框,df,(此处显示的片段):

    H2475  H2481  H2669  H2843  H2872  H2873  H2881  H2909
E1 94.470 26.481 15.120 18.490 16.189 11.422 14.886 0.512
E2 1.016 0.363 0.509 1.190 1.855 0.958 0.771 0.815
E3 9.671 0.637 0.571 0.447 0.116 0.452 0.403 0.003
E4 3.448 2.826 2.183 2.607 4.288 2.526 2.820 3.523
E5 2.548 1.916 1.126 1.553 1.089 1.228 0.887 1.065

我想做的是在去除两个极值后计算每行的平均值。对于整行,我使用了 plyr:

library(plyr)
df.my_means <- adply(df, 1, transform, my_means = mean(as.matrix(df[i,]) ) )

创建一些用 NA 替换最小值和最大值的临时数据框/矩阵应该也可以,但作为初学者我做不到。

非常感谢您的帮助

编辑 1

我显然不知道 mean 有一个 trim 选项。我想要一个解决方案,而不是 mean 我可以插入任何其他功能。即:

library(plyr)
library(e1071)
df.my_means <- adply(df, 1, transform, my_skew = skewness(as.matrix(df[i,]), , 3 ) )

如果这违反了问题发布规则,我深表歉意,但是针对均值、中位数等单独提出问题是违反直觉的。

编辑 2没有 plyr 的部分解决方案:

df.my_means <- apply(df ,1, function(x){y=x[order(x)]; (y[2:(length(y)-1)])})

这会断开列值之间的连接。

最佳答案

您可以使用trim参数来mean:

apply(x,1,mean,trim=1/NCOL(x))
# E1 E2 E3 E4 E5
# 17.0980000 0.8765000 0.4376667 2.9583333 1.3295000

关于r - 来自数据框中的行值的平均值,不包括 R 中的最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8520919/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com