merge rows into groups
我有一个这样构造的数据框
1 2 3 4 5 6 7 | age share ... 19 0.02 20 0.01 21 0.03 22 0.04 ... |
我想将每个年龄组合并到更大的群组中,例如
当然,这可以很容易地手动完成,但我很难相信没有专门的功能。但是,我无法找到此功能。你能帮帮我吗?
你要使用的是?cut。例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 | > myData <- read.table(text="age share + 19 0.02 + 20 0.01 + 21 0.03 + 22 0.04", header=TRUE) > > myData$ageRange <- cut(myData$age, breaks=c(0, 20, 24, 29, 34, 35, 100)) > myData age share ageRange 1 19 0.02 (0,20] 2 20 0.01 (0,20] 3 21 0.03 (20,24] 4 22 0.04 (20,24] |
请注意,您需要包含低于底部编号和顶部编号的断点,以便正确形成这些间隔。进一步注意,断点恰好是(例如)
从那里,如果您希望将归类在同一
1 2 3 4 5 | > newData <- aggregate(share~ageRange, myData, sum) > newData ageRange share 1 (0,20] 0.03 2 (20,24] 0.07 |