gpt4 book ai didi

删除所有最小值和最大值,然后在 R 中求平均值

转载 作者:行者123 更新时间:2023-12-02 15:49:27 29 4
gpt4 key购买 nike

我有以下数据集:

wow <- data.frame(a = c(1, 1, 1, 2, 3, 4, 4), b = c(3, 4, 2, 6, 2, 6, 5), c = c(1, 6, 3, 6, 1, 8, 9))
print(wow)
a b c
1 1 3 1
2 1 4 6
3 1 2 3
4 2 6 6
5 3 2 1
6 4 6 8
7 4 5 9

我需要从每列中删除所有最小值和最大值,然后计算剩余值的平均值,以便结果如下所示:

print(result)
a b c
1 2.5 4 5.75

我发现了一个已经回答的类似问题( mean from row values in a dataframe excluding min and max values in R ),但最大的区别是提出该问题的人只处理每列中的单个最小值和最大值,而我可以有多个最小值和最大值列中的最大值。

最佳答案

我们可以使用 %in% 删除每列中的 minmax 值,并获取 mean 来自剩余的值。这可以通过 dplyr 中的 summarise_each 来完成

library(dplyr)
summarise_each(wow,funs(mean(.[!.%in% c(min(.), max(.))])))
# a b c
#1 2.5 4 5.75

或者使用基础R

sapply(wow, function(x) mean(x[!x %in% range(x)]))
# a b c
#2.50 4.00 5.75

关于删除所有最小值和最大值,然后在 R 中求平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31255408/

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