如何在Rstudio中计算特定行集的平均值?

  • 本文关键字:平均值 Rstudio 计算 r
  • 更新时间 :
  • 英文 :

DF <- data.frame(Height = rnorm(100, 170, 5),
Weight = rnorm(100, 55, 5))
BMI = function(height,weight){(weight/(height)^2*10000)}
DF$bmi = BMI(DF$Height,DF$Weight)
DF$weight_group <- 
cut(
x = DF$Weight,
breaks = c(0,60,70,Inf),
include.lowest = TRUE,
labels = c("0-60", "61-70", "71+")
)
DF$BMI_group <-
cut(
x = DF$bmi,
breaks = c(0, 19.75582, Inf),
include.lowest = TRUE,
labels = c("Below Average", "Above Average")
)

这是我的代码。我不知道如何计算数据帧后半部分的平均值。我不知道如何添加性别,使50个男性和50个女性,所以这是我的工作。

您正在寻找这样的解决方案吗?


DF <- data.frame(Height = rnorm(100, 170, 5),
Weight = rnorm(100, 55, 5),
Gender = c(rep("male", 50), rep("female", 50)))

BMI <-  function(height,weight){(weight/(height)^2*10000)}
library(dplyr)
DF %>% 
group_by(Gender) %>% 
mutate(bmi = BMI(Height, Weight)) %>% 
summarise(mean_bmi = mean(bmi))
# A tibble: 2 x 2
Gender mean_bmi
* <chr>     <dbl>
1 female     19.4
2 male       19.6

我们可以使用sample创建列,subset为'F'创建'Gender',并应用BMI

DF$Gender <- sample(c("F", "M"), nrow(DF), replace = TRUE, prob = c(0.5, 0.5))
with(subset(DF, Gender == "F"), mean(BMI(Height, Weight)))

如果我们想通过'BMI_group'得到'BMI'的mean

subdf <- subset(DF, Gender == "F")
with(subdf, tapply(BMI(Height, Weight), BMI_group, FUN = mean))
Below Average Above Average 
17.57841      21.43003 

最新更新