如何在R中构建一个将变量分成间隔并计算平均值,sd和间隔计数的函数

问题描述 投票:0回答:1

我尝试将Age变量拆分为间隔,计算间隔的平均值,sd和计数,然后将每个间隔的输出保存在向量中,然后将这些向量组合到数据帧中,对于每个间隔,我都可以简单地将值。

我已经这样做:

intervals <- function(g){
  i1 <- c()
  i2 <- c()
  i3 <- c()
  i4 <- c()
  i5 <- c()
  if(g <= 30){
    i1 <- c(mean(g), sd(g))
    df <- cbind(i1)
  }else if(g > 30 & g <= 40){
      i2 <- c(mean(g), sd(g))
      df <- cbind(i2)
  }else if(g > 40 & g <= 50){
      i3 <- c(mean(g), sd(g))
      df <- cbind(i3)
  }else if(i >50 & i <= 60){
      i4 <- c(mean(g), sd(g))
      df <- cbind(i4)
  }else if(g > 60){
      i5 <- c(mean(g), sd(g))
      df <- cbind(i5)
  }else{
 } 
return(df)
}

这是我从代码中得到的:

           i3
[1,] 45.22727
[2,] 13.11818

我什至没有尝试包括计数,因为我没有机会锻炼解决方案。

非常感谢您的帮助!

r function
1个回答
0
投票
这不是一个函数,但是可以实现您想要的功能:

df <- data.frame( age = runif(100, min = 10, max = 100) ) df %>% mutate( category = case_when( age <= 30 ~ "i1", age > 30 & age <= 40 ~ "i2", age > 40 & age <= 50 ~ "i3", age > 50 & age <= 60 ~ "i4", age > 60 ~ "i5" )) %>% group_by(category) %>% summarise( mean = mean(age), sd = sd(age), count = n() )

热门问题
推荐问题
最新问题