首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数返回在另一个变量中具有最大值的类别。

函数返回在另一个变量中具有最大值的类别。
EN

Code Review用户
提问于 2022-05-25 13:12:52
回答 1查看 38关注 0票数 2

是否有一个很好的简单功能来返回哪种饮食的平均水平最高?我可以从每一种饮食中计算出以下几种方法:

代码语言:javascript
复制
mean(filter(data, grepl('Chow', diet))$Ileibacterium)
mean(filter(data, grepl('HFD', diet))$Ileibacterium)
mean(filter(data, grepl('HFHSD', diet))$Ileibacterium)
mean(filter(data, grepl('HSD', diet))$Ileibacterium)

然后从读取输出中找出哪一个是最高的,但是这是一个很长的过程。我可以用最大值(.)功能,然而,这将返回最大平均值,而不是哪个饮食有最大。是否有某种功能,我可以把所有的这四个作为输入,它将返回的饮食,有最大的均值在伊莱姆变量?

EN

回答 1

Code Review用户

发布于 2022-05-25 14:18:39

听起来,您有一个分类变量,并且希望找到达到另一个变量的最高平均值的类别值。

R有许多简单的方法来获得某些变量的平均值,按不同的变量分组。在R基,你可能会做

代码语言:javascript
复制
tapply(mtcars$mpg, mtcars$gear, mean)
#        3        4        5 
# 16.10667 24.53333 21.38000 

而在潮间文学中,可能是这样的

代码语言:javascript
复制
library(dplyr)
mtcars %>%
  group_by(gear) %>%
  summarize(meanmpg=mean(mpg))
# # A tibble: 3 × 2
#    gear meanmpg
#      
# 1     3    16.1
# 2     4    24.5
# 3     5    21.4

在这两种情况下,您都有一个对象,每个组只有一个值,剩下的就是提取与最高值相关联的分类变量级别:

代码语言:javascript
复制
names(tail(sort(tapply(mtcars$mpg, mtcars$gear, mean)), 1))
# [1] "4"

mtcars %>%
  group_by(gear) %>%
  summarize(meanmpg=mean(mpg)) %>%
  arrange(meanmpg) %>%
  tail(1) %>%
  select(gear)
# # A tibble: 1 × 1
#    gear
#   
# 1     4
票数 2
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/276831

复制
相关文章

相似问题

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