将数据放入箱中并对r中这些箱中的值求平均值

时间:2017-06-27 15:03:28

标签: r

我是新手,但我被教授要求用它来分析我们的数据。目前,我们正在尝试对我知道如何操作的大量数据进行变更点分析。但我们希望首先将数据放入30秒的时间段。我们的试验时长为20分钟,因此我们应该共有40个箱子。我们有以下列:时间,流量和MAP,并希望在每个30秒的箱中获取流量和MAP的值并对其进行平均。这将把1120-2000点数据压缩成更清洁的40个数据点。我们在分析数据时遇到问题,甚至不知道从哪里开始,一旦分箱我们想生成一个新的40个值的表(MAP为40,Flow为40),这样我们就可以使用changepoint包来找到变更点在我们的集合中。我们相信可能是剪辑(可能是我们需要的。

很抱歉,如果这太混乱或太模糊,我们就没有任何编程经验。

编辑我认为这与细菌问题不同,因为我希望直接输出到表中,而不是从图形插值然后插入表格。

以下是我们数据的示例:

RawMin  Flow    MAP
2.9982  51  77
3.0113  110 80
3.0240  84  77
3.0393  119 75
3.0551  93  75
3.0692  136 73
3.0839  81  73
3.0988  58  72
3.1138  125 71
3.1285  89  72
3.1432  160 73
3.1576  87  74
3.1714  128 74
3.1860  90  74
3.2015  63  76
3.2154  120 76
3.2293  65  76
3.2443  156 78
3.2585  66  78
3.2723  130 78
3.2876  89  77
3.3029  111 77
3.3171  90  75
3.3329  100 76
3.3482  127 76
3.3618  69  78
3.3751  155 78
3.3898  90  79
3.4041  127 80
3.4176  103 80
3.4325  87  79
3.4484  134 78
3.4637  57  77
3.4784  147 78
3.4937  75  78
3.5080  137 78
3.5203  123 78
3.5337  99  80
3.5476  170 80
3.5620  90  79
3.5756  164 78
3.5909  85  78
3.6061  164 77
3.6203  103 77
3.6348  140 79
3.6484  152 79
3.6611  79  80
3.6742  184 82
3.6872  128 81
3.7017  123 82
3.7152  176 81
3.7295  74  81
3.7436  153 80
3.7572  85  80
3.7708  115 79
3.7847  187 78
3.7980  105 78
3.8108  175 78
3.8252  124 79
3.8392  171 79
3.8528  127 78
3.8669  138 79
3.8811  198 79
3.8944  109 80
3.9080  171 80
3.9214  137 79
3.9341  109 81
3.9455  193 83
3.9575  108 85
3.9707  163 84
3.9853  136 82
4.0005  121 81
4.0164  164 79
4.0311  73  79
4.0450  171 78
4.0591  105 79
4.0716  117 79
4.0833  210 81
4.0940  103 85
4.1041  193 88
4.1152  163 84
4.1310  145 82
4.1486  126 79
4.1654  118 77
4.1811  130 75
4.1975  83  74
4.2127  176 73
4.2277  72  74
4.2424  177 74
4.2569  90  75
4.2705  148 76
4.2841  148 77
4.2986  123 77
4.3130  150 76
4.3280  71  77
4.3433  176 76
4.3583  90  76
4.3727  138 77
4.3874  136 79
4.4007  106 80
4.4133  167 83
4.4247  119 87
4.4360  123 88
4.4496  141 85
4.4673  117 84
4.4841  133 80
4.5005  83  79
4.5166  156 77
4.5324  97  77
4.5463  182 77
4.5605  110 79
4.5744  187 80
4.5882  121 81
4.6024  142 81
4.6171  178 81
4.6313  96  80
4.6452  180 80
4.6599  107 80
4.6741  151 79
4.6876  137 80
4.7009  132 82
4.7141  199 80
4.7279  91  81
4.7402  172 83
4.7531  172 80
4.7660  128 84
4.7785  197 83
4.7909  122 84
4.8046  129 84
4.8187  176 82
4.8328  102 81
4.8448  184 81
4.8556  145 83
4.8657  123 84
4.8768  138 86
4.8885  143 82
4.9040  135 81
4.9198  112 78
4.9362  134 77
4.9515  152 76
4.9651  83  76
4.9785  177 78
4.9912  114 79
5.0037  127 80
5.0167  200 81
5.0297  104 81
5.0429  175 81
5.0559  123 81
5.0685  106 81
5.0809  176 81
5.0937  113 82
5.1064  191 81
5.1181  178 79
5.1297  121 79
5.1404  176 80
5.1506  214 83
5.1606  132 85
5.1709  149 83
5.1829  175 80
5.1981  103 79
5.2128  169 76
5.2283  97  75
5.2431  149 74
5.2575  109 74
5.2709  97  74
5.2842  195 75
5.2975  104 75
5.3106  143 77
5.3231  185 76
5.3361  140 77
5.3487  132 78
5.3614  162 79
5.3750  98  78
5.3900  137 78
5.4047  108 76
5.4202  94  76
5.4341  186 75
5.4475  82  77
5.4608  157 80
5.4739  176 81
5.4867  90  83
5.4989  123 86

1 个答案:

答案 0 :(得分:1)

假设RawMin是以分钟为单位的时间,你可以做这样的事情......

df2 <- aggregate(df, #the data frame
                 by=list(cut(df$RawMin,seq(0,10,0.5))), #the bins (see below)
                 mean) #the aggregating function

df2
  Group.1   RawMin     Flow      MAP
1 (2.5,3] 2.998200  51.0000 77.00000
2 (3,3.5] 3.251682 103.5588 76.20588
3 (3.5,4] 3.748994 135.9722 79.75000
4 (4,4.5] 4.240434 132.0857 79.25714
5 (4.5,5] 4.749781 140.1892 80.43243
6 (5,5.5] 5.246556 140.9231 78.89744

使用cut函数完成分箱 - 此处在0到10之间间隔0.5分钟,您可能想要更改。 bin名称是间隔 - 例如(2.5,3]表示大于2.5,小于或等于3.

如果您不希望输出中包含RawMin,只需在df[,-1]的输入中使用aggregate