r - 如何在 R 中构建一个函数,将变量拆分为区间并计算区间的平均值、标准差和计数
问题描述
我尝试将 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
我什至没有尝试将计数包括在内,因为我没有机会制定解决方案。
非常感谢你的帮助!
解决方案
这不是一个功能,但它实现了你想要的:
# sample data
df <- data.frame(
age = runif(100, min = 10, max = 100)
)
# trying to first define the categories and then calculate the descriptive statistics
# edit: I used @thelatemail suggestion from the comments to simplify the code
df %>%
group_by(category = cut(age, c(0,30,40,50,60,Inf), labels=paste0("i",1:5))) %>%
summarise(
mean = mean(age),
sd = sd(age),
count = n()
)
推荐阅读
- arrays - 如何以具有字段值的角度返回嵌套对象数组的特定字段?
- asp.net-core - 如何从 MVC 控制器使用 Azure 函数
- android - ActiveAndroid 与 Cascade 的一对多关系
- python - 选择性结构上的python函数argeparse:无法识别的参数
- amazon-ec2 - 如何检查我的 EC2 实例是否具有 Python3 和 Python2.7?如果是这样如何在版本之间切换?
- html - 无法在 CSS 文件中获取 @media 查询设置以在适用平台中执行
- javascript - 如何修复不寻常的网页行为 - “投资组合”的多个 btn 活动
- python-3.x - 修改列表中的元组元素
- plot - 在 Julia 中绘制一组具有多个参数的参数方程
- javascript - 如果我取消选中顶部的复选框之一,如何过滤我的服务列表?