在R中合并数据 [英] binning data in R

查看:157
本文介绍了在R中合并数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个约4000个值的向量。我只需要将它分成60个相等的间隔,然后我必须计算中位数(对于每个分区)。

  v< -c(1:4000)

V真的只是一个向量。我读了关于切割,但需要我来分割断点。我只想要60个等间隔

解决方案

使用 cut 直拨

 > (v,cut(v,60),median)
(-3,67.7)(67.7,134)(134,201)(201,268)
34.0 101.0 167.5 234.0
(268,334)( 334,401](401,468)(468,534)
301.0 367.5 434.0 501.0
(534,601)(601,668)(668,734)(734,801)
567.5 634.0 701.0 767.5
(801,867)(867,934) (934,1e + 03](1e + 03,1.07e + 03]
834.0 901.0 967.5 1034.0
(1.07e + 03,1.13e + 03](1.13e + 03,1.2e + 03 ](1.2e + 03,1.27e + 03](1.27e + 03,1.33e + 03]
1101.0 1167.5 1234.0 1301.0
(1.33e + 03,1.4e + 03](1.4e + 03,1.47e + 03](1.47e + 03,1.53e + 03](1.53e + 03,1.6e + 03)
1367.5 1434.0 1500.5 1567.0
(1.6e + 03,1.67e + 03](1.67e + 03,1.73e + 03](1.73e + 03,1.8e + 03](1.8e + 03,1.87e + 03 ]
1634.0 1700.5 1767.0 1834.0
(1.87e + 03,1.93e + 03](1.93e + 03,2e + 03](2e + 03,2.07e + 03](2.07e + 03, 2.13e + 03]
1900.5 1967.0 2034.0 2100.5
(2.13e + 03,2.2e + 03](2.2e + 03,2.27e + 03](2.27e + 03,2.33e + 03] (2.33e + 03,2.4e + 03]
2167.0 2234.0 2300.5 2367.0
(2.4e + 03,2.47e + 03](2.47e + 03,2.53e + 03](2.53e + 03 ,2.6e + 03](2.6e + 03,2.67e + 03]
2434.0 2500.5 2567.0 2634.0
(2.67e + 03,2.73e + 03](2.73e + 03,2.8e + 03 ](2.8e + 03,2.87e + 03](2.87e + 03,2.93e + 03)
2700.5 2767.0 2833.5 2900.0
(2.93e + 03,3e + 03](3e + 03, 3.07e + 03](3.07e + 03,3.13e + 03](3.13e + 03,3。 2e + 03]
2967.0 3033.5 3100.0 3167.0
(3.2e + 03,3.27e + 03](3.27e + 03,3.33e + 03](3.33e + 03,3.4e + 03]( 3.4e + 03,3.47e + 03]
3233.5 3300.0 3367.0 3433.5
(3.47e + 03,3.53e + 03](3.53e + 03,3.6e + 03](3.6e + 03, 3.67e + 03](3.67e + 03,3.73e + 03]
3500.0 3567.0 3633.5 3700.0
(3.73e + 03,3.8e + 03](3.8e + 03,3.87e + 03] (3.87e + 03,3.93e + 03](3.93e + 03,4e + 03)
3767.0 3833.5 3900.0 3967.0


I have a vector with around 4000 values. I would just need to bin it into 60 equal intervals for which I would then have to calculate the median (for each of the bins).

v<-c(1:4000)

V is really just a vector. I read about cut but that needs me to sepecify the breakpoints. I just want 60 equal intervals

解决方案

Use cut and tapply:

> tapply(v, cut(v, 60), median)
          (-3,67.7]          (67.7,134]           (134,201]           (201,268] 
               34.0               101.0               167.5               234.0 
          (268,334]           (334,401]           (401,468]           (468,534] 
              301.0               367.5               434.0               501.0 
          (534,601]           (601,668]           (668,734]           (734,801] 
              567.5               634.0               701.0               767.5 
          (801,867]           (867,934]         (934,1e+03]    (1e+03,1.07e+03] 
              834.0               901.0               967.5              1034.0 
(1.07e+03,1.13e+03]  (1.13e+03,1.2e+03]  (1.2e+03,1.27e+03] (1.27e+03,1.33e+03] 
             1101.0              1167.5              1234.0              1301.0 
 (1.33e+03,1.4e+03]  (1.4e+03,1.47e+03] (1.47e+03,1.53e+03]  (1.53e+03,1.6e+03] 
             1367.5              1434.0              1500.5              1567.0 
 (1.6e+03,1.67e+03] (1.67e+03,1.73e+03]  (1.73e+03,1.8e+03]  (1.8e+03,1.87e+03] 
             1634.0              1700.5              1767.0              1834.0 
(1.87e+03,1.93e+03]    (1.93e+03,2e+03]    (2e+03,2.07e+03] (2.07e+03,2.13e+03] 
             1900.5              1967.0              2034.0              2100.5 
 (2.13e+03,2.2e+03]  (2.2e+03,2.27e+03] (2.27e+03,2.33e+03]  (2.33e+03,2.4e+03] 
             2167.0              2234.0              2300.5              2367.0 
 (2.4e+03,2.47e+03] (2.47e+03,2.53e+03]  (2.53e+03,2.6e+03]  (2.6e+03,2.67e+03] 
             2434.0              2500.5              2567.0              2634.0 
(2.67e+03,2.73e+03]  (2.73e+03,2.8e+03]  (2.8e+03,2.87e+03] (2.87e+03,2.93e+03] 
             2700.5              2767.0              2833.5              2900.0 
   (2.93e+03,3e+03]    (3e+03,3.07e+03] (3.07e+03,3.13e+03]  (3.13e+03,3.2e+03] 
             2967.0              3033.5              3100.0              3167.0 
 (3.2e+03,3.27e+03] (3.27e+03,3.33e+03]  (3.33e+03,3.4e+03]  (3.4e+03,3.47e+03] 
             3233.5              3300.0              3367.0              3433.5 
(3.47e+03,3.53e+03]  (3.53e+03,3.6e+03]  (3.6e+03,3.67e+03] (3.67e+03,3.73e+03] 
             3500.0              3567.0              3633.5              3700.0 
 (3.73e+03,3.8e+03]  (3.8e+03,3.87e+03] (3.87e+03,3.93e+03]    (3.93e+03,4e+03] 
             3767.0              3833.5              3900.0              3967.0

这篇关于在R中合并数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆