R 按频率划分的分组数据
我对R很陌生,我正在寻找一种通过频率总结数据的方法。所以,我有一个这样的数据帧:R 按频率划分的分组数据,r,R,我对R很陌生,我正在寻找一种通过频率总结数据的方法。所以,我有一个这样的数据帧: immagine media 1 1 60.65391 2 2 58.89603 3 3 60.45428 4 4 55.91487 5 5 56.11804 6 6 56.05239 7 7 61.12667 8 8 60.46287 9 9 57
immagine media
1 1 60.65391
2 2 58.89603
3 3 60.45428
4 4 55.91487
5 5 56.11804
6 6 56.05239
7 7 61.12667
8 8 60.46287
9 9 57.96718
10 10 58.75914
11 11 60.39214
12 12 57.64966
13 13 57.14457
14 14 56.85810
15 15 56.97652
16 16 58.45831
17 17 57.37774
18 18 57.31794
19 19 60.89813
20 20 61.57055
21 21 59.62459
22 22 56.86678
23 23 56.46254
24 24 54.72302
25 25 56.04285
26 26 55.88004
27 27 56.64764
我希望有一个表格,可以将变量“media”分成55-60、50-55。。。这是相对的内在。我真的不知道该怎么继续下去。
提前向任何人表示感谢
我还想把数据除以它的置信区间。是否有可能使用切割函数使不同的组被95%CI分割。提前谢谢。尼古拉
Nicola
cut
为您提供了一个系数,其中级别是您指定的分组
表格
采用一个向量,告诉您每个级别中有多少个元素
将两者结合起来,你应该能够做你想做的事情:
> media <- rnorm(10,2.5)+57
> media
[1] 60.13145 58.78920 61.01821 60.35878 59.20806 57.75657 61.12825 59.67605
[9] 59.29902 58.70735
> ct <- cut( media, seq(50,65,2.5), include.lowest=TRUE )
> ct
[1] (60,62.5] (57.5,60] (60,62.5] (60,62.5] (57.5,60] (57.5,60] (60,62.5]
[8] (57.5,60] (57.5,60] (57.5,60]
Levels: [50,52.5] (52.5,55] (55,57.5] (57.5,60] (60,62.5] (62.5,65]
> table(ct)
ct
[50,52.5] (52.5,55] (55,57.5] (57.5,60] (60,62.5] (62.5,65]
0 0 0 6 4 0
> table(ct)/length(ct)*100
ct
[50,52.5] (52.5,55] (55,57.5] (57.5,60] (60,62.5] (62.5,65]
0 0 0 60 40 0
由于保留了向量的顺序,您可以通过将ct
存储为新列,将分组添加回data.frame。如果您的data.frame被称为dat
,则:
dat$group <- ct
dat$groupcut
为您提供了一个系数,其中级别是您指定的分组
表格
采用一个向量,告诉您每个级别中有多少个元素
将两者结合起来,你应该能够做你想做的事情:
> media <- rnorm(10,2.5)+57
> media
[1] 60.13145 58.78920 61.01821 60.35878 59.20806 57.75657 61.12825 59.67605
[9] 59.29902 58.70735
> ct <- cut( media, seq(50,65,2.5), include.lowest=TRUE )
> ct
[1] (60,62.5] (57.5,60] (60,62.5] (60,62.5] (57.5,60] (57.5,60] (60,62.5]
[8] (57.5,60] (57.5,60] (57.5,60]
Levels: [50,52.5] (52.5,55] (55,57.5] (57.5,60] (60,62.5] (62.5,65]
> table(ct)
ct
[50,52.5] (52.5,55] (55,57.5] (57.5,60] (60,62.5] (62.5,65]
0 0 0 6 4 0
> table(ct)/length(ct)*100
ct
[50,52.5] (52.5,55] (55,57.5] (57.5,60] (60,62.5] (62.5,65]
0 0 0 60 40 0
由于保留了向量的顺序,您可以通过将ct
存储为新列,将分组添加回data.frame。如果您的data.frame被称为dat
,则:
dat$group <- ct
dat$group不清楚您想要什么,但是cut()
会出现在答案中。您签出了吗?假设您的数据集名为dat。您可以这样做newdat@dickoa非常感谢。它几乎接近我要找的东西。您认为是否可以将媒体数据按分位数而不是固定值分割?再次感谢。不清楚您想要什么,但答案中会出现cut()
。您签出了吗?假设您的数据集名为Dat。您可以这样做newdat@dickoa非常感谢。它几乎接近我要找的东西。您认为是否可以将媒体数据按分位数而不是固定值分割?再次感谢您。感谢弗里德曼,我还想将正确的“immagine”编号与组关联。这才是我真正想要的。再次谢谢你。请注意,a将在未来获得更好的帮助。谢谢这是我正在寻找的。我必须深入使用“切割”功能。NikI还希望将数据除以其置信区间。是否有可能使用切割函数使不同的组被95%CI分割。提前谢谢。NicolaThanks Friedman,我还想将正确的“immagine”编号与组关联。这才是我真正想要的。再次谢谢你。请注意,a将在未来获得更好的帮助。谢谢这是我正在寻找的。我必须深入使用“切割”功能。NikI还希望将数据除以其置信区间。是否有可能使用切割函数使不同的组被95%CI分割。提前谢谢。尼古拉