R 将行合并到组中
我有一个这样构造的数据帧R 将行合并到组中,r,dataframe,R,Dataframe,我有一个这样构造的数据帧 age share ... 19 0.02 20 0.01 21 0.03 22 0.04 ... 我想将每个年龄组合并成更大的群组,如=35(并求和份额) 当然,这可以很容易地手工完成,但我很难相信没有专门的功能。但是,我找不到这个函数。你能帮我吗?你想用的是。例如: > myData <- read.table(text="age share + 19 0.02 + 20 0.01 + 21 0.03 +
age share
...
19 0.02
20 0.01
21 0.03
22 0.04
...
我想将每个年龄组合并成更大的群组,如=35
(并求和份额)
当然,这可以很容易地手工完成,但我很难相信没有专门的功能。但是,我找不到这个函数。你能帮我吗?你想用的是。例如:
> 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]
你想用的是。例如:
> 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]
看一看
?cut
功能,它可以实现您所需的功能;)@Jilber谢谢-我尝试过剪切,但我不知道如何处理共享列…在这种情况下,你应该使用cut2,我相信它在hmisc包中--检查此项查看?剪切功能,它完成了你想要的功能;)@Jilber谢谢-我试过cut,但我不知道如何处理共享列…在这种情况下,你应该使用cut2,我相信它在hmisc软件包中-检查这个OK,这很有效。然而,实际的合并是如何进行的?那么第1行和第2行以及第3行和第4行合并为一行?希望这不是一个愚蠢的问题……我相信这不是一个愚蠢的问题;不幸的是,我不明白你的意思。你能更新你的问题以显示你想要的输出是什么样子吗?我想我知道了:aggregate(share~ageRange,myData,sum)
-你能把这个添加到你的答案中吗?好的,这很有效。然而,实际的合并是如何进行的?那么第1行和第2行以及第3行和第4行合并为一行?希望这不是一个愚蠢的问题……我相信这不是一个愚蠢的问题;不幸的是,我不明白你的意思。你能更新你的问题以显示你想要的输出是什么样子吗?我想我知道了:aggregate(share~ageRange,myData,sum)
-你能把这个添加到你的答案中吗?