r - 如何在R中剪切具有相同中断的多列?
问题描述
我正在尝试汇总多列中断内的计数。
我的数据集包含年龄数据列,看起来像这样
1 | 2 |
---|---|
44.550775 | 43.205206 |
49.710284 | 51.914791 |
... | ... |
值在 0 到 70 之间。
我想计算在特定范围内有多少值(5 岁步长)。我知道如何获得一列的计数:
> b <- table(cut(df[,1], breaks=seq(0, 70, 5)))
> b
(0,5] (5,10] (10,15] (15,20] (20,25] (25,30] (30,35] (35,40] (40,45]
13 8 11 6 9 11 18 14 7
(45,50] (50,55] (55,60] (60,65] (65,70]
7 5 0 1 0
如何使其适用于多个列?我想要的是这样的
> [1]
(0,5] (5,10] (10,15] (15,20] (20,25] (25,30] (30,35] (35,40] (40,45]
13 8 11 6 9 11 18 14 7
(45,50] (50,55] (55,60] (60,65] (65,70]
7 5 0 1 0
> [2]
(0,5] (5,10] (10,15] (15,20] (20,25] (25,30] (30,35] (35,40] (40,45]
10 7 9 3 8 12 14 19 6
(45,50] (50,55] (55,60] (60,65] (65,70]
6 5 3 1 0
我努力了
data.frame(lapply(bootdata, cut, breaks=seq(0, 70, 5)))
但这只是给我一个数据框,说明每个单独值的数据范围,而不是按列计数。
任何人都可以帮忙吗?请问我是否不清楚。
解决方案
例子
df=data.frame(matrix(runif(10*3,0,70),10,3))
sapply(df,function(x){table(cut(x,breaks=seq(0,70,5)))})
X1 X2 X3
(0,5] 2 1 0
(5,10] 1 1 1
(10,15] 0 2 0
(15,20] 1 1 1
(20,25] 0 1 2
(25,30] 0 1 1
(30,35] 2 0 2
(35,40] 1 1 1
(40,45] 2 0 0
(45,50] 0 1 0
(50,55] 0 0 0
(55,60] 0 0 1
(60,65] 0 0 1
(65,70] 1 1 0
推荐阅读
- git - 在 Windows 上找不到 git-upload-pack 命令
- python - 如何从 Heroku 获取 Postgresql 配置参数?
- sql - 我写了程序,只填了一栏,告诉我错误在哪里?
- windows - 如何使用 wGet 获取文件而不是 url
- laravel - 如何在 laravel eloquent 查询中使用数学函数?
- reactjs - 无法读取未定义的属性“问题”
- architecture - 在分布式架构中使用 DDD 聚合服务?
- kubernetes - 如何在 kubernetes 中运行的 eclipse che 工作区中挂载卷?
- docker - 如何从一个 docker 镜像连接到另一个 docker 镜像的端口?
- python - Pandas Dataframe:在具有相同类别的不同现有数据帧上使用相同的类别代码