
是否有一个很好的简单功能来返回哪种饮食的平均水平最高?我可以从每一种饮食中计算出以下几种方法:
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)然后从读取输出中找出哪一个是最高的,但是这是一个很长的过程。我可以用最大值(.)功能,然而,这将返回最大平均值,而不是哪个饮食有最大。是否有某种功能,我可以把所有的这四个作为输入,它将返回的饮食,有最大的均值在伊莱姆变量?
发布于 2022-05-25 14:18:39
听起来,您有一个分类变量,并且希望找到达到另一个变量的最高平均值的类别值。
R有许多简单的方法来获得某些变量的平均值,按不同的变量分组。在R基,你可能会做
tapply(mtcars$mpg, mtcars$gear, mean)
# 3 4 5
# 16.10667 24.53333 21.38000 而在潮间文学中,可能是这样的
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在这两种情况下,您都有一个对象,每个组只有一个值,剩下的就是提取与最高值相关联的分类变量级别:
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 4https://codereview.stackexchange.com/questions/276831
复制相似问题