0

我有来自动物记录的时间相关数据。我的数据有两组(TR 和 UT),每组有 20 个重复。Tiempo(时间)变量从 282 秒变为 318 秒。我在 300 秒处有一个转折点,在该转折点上我打开了光刺激。我注册了我转换为数字整数值的响应。

数据子集如下所示

> dput(sub)
structure(list(tiempo = c(282, 282.2, 282.4, 282.6, 282.8, 283, 
283.2, 283.4, 283.6, 283.8, 284, 284.2, 284.4, 284.6, 284.8, 
285, 285.2, 285.4, 285.6, 285.8, 286, 286.2, 286.4, 286.6, 286.8, 
287, 287.2, 287.4, 287.6, 287.8, 288, 288.2, 288.4, 288.6, 288.8, 
289, 289.2, 289.4, 289.6, 289.8, 290, 290.2, 290.4, 290.6, 290.8, 
291, 291.2, 291.4, 291.6, 291.8, 292, 292.2, 292.4, 292.6, 292.8, 
293, 293.2, 293.4, 293.6, 293.8, 294, 294.2, 294.4, 294.6, 294.8, 
295, 295.2, 295.4, 295.6, 295.8, 296, 296.2, 296.4, 296.6, 296.8, 
297, 297.2, 297.4, 297.6, 297.8, 298, 298.2, 298.4, 298.6, 298.8, 
299, 299.2, 299.4, 299.6, 299.8, 300, 300.2, 300.4, 300.6, 300.8, 
301, 301.2, 301.4, 301.6, 301.8, 302, 302.2, 302.4, 302.6, 302.8, 
303, 303.2, 303.4, 303.6, 303.8, 304, 304.2, 304.4, 304.6, 304.8, 
305, 305.2, 305.4, 305.6, 305.8, 306, 306.2, 306.4, 306.6, 306.8, 
307, 307.2, 307.4, 307.6, 307.8, 308, 308.2, 308.4, 308.6, 308.8, 
309, 309.2, 309.4, 309.6, 309.8, 310, 310.2, 310.4, 310.6, 310.8, 
311, 311.2, 311.4, 311.6, 311.8, 312, 312.2, 312.4, 312.6, 312.8, 
313, 313.2, 313.4, 313.6, 313.8, 314, 314.2, 314.4, 314.6, 314.8, 
315, 315.2, 315.4, 315.6, 315.8, 316, 316.2, 316.4, 316.6, 316.8, 
317, 317.2, 317.4, 317.6, 317.8, 318), TR2x45.1 = c(0L, 0L, 0L, 
0L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L), TR2x45.10 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 2L, 1L, 0L), TR2x45.11 = c(0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L), TR2x45.12 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), TR2x45.8 = c(0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L), TR2x45.9 = c(0L, 4L, 4L, 4L, 3L, 0L, 4L, 3L, 
5L, 3L, 4L, 5L, 4L, 4L, 3L, 3L, 3L, 5L, 4L, 4L, 3L, 4L, 5L, 4L, 
2L, 5L, 3L, 5L, 4L, 5L, 3L, 4L, 4L, 4L, 3L, 5L, 3L, 5L, 4L, 4L, 
3L, 3L, 6L, 4L, 4L, 2L, 3L, 4L, 2L, 4L, 5L, 4L, 3L, 5L, 3L, 3L, 
4L, 4L, 4L, 3L, 3L, 4L, 3L, 3L, 3L, 3L, 5L, 4L, 4L, 3L, 3L, 2L, 
4L, 3L, 4L, 3L, 4L, 4L, 3L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 0L, 2L, 
2L, 4L, 4L, 3L, 3L, 11L, 3L, 3L, 4L, 3L, 1L, 4L, 3L, 2L, 2L, 
2L, 2L, 1L, 1L, 1L, 0L, 1L, 2L, 3L, 1L, 1L, 0L, 1L, 0L, 1L, 1L, 
2L, 1L, 7L, 2L, 5L, 1L, 2L, 2L, 1L, 1L, 1L, 0L, 0L, 2L, 4L, 5L, 
1L, 0L, 1L, 1L, 1L, 3L, 1L, 1L, 0L, 0L, 4L, 2L, 2L, 3L, 1L, 1L, 
0L, 1L, 1L, 2L, 3L, 2L, 3L, 3L, 2L, 0L, 0L, 1L, 1L, 1L, 3L, 2L, 
4L, 1L, 1L, 1L, 2L, 2L, 3L, 1L, 1L, 1L, 0L, 1L, 1L, 1L), UT2x45.1 = c(0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L), UT2x45.10 = c(0L, 6L, 4L, 2L, 3L, 3L, 6L, 6L, 
3L, 4L, 7L, 4L, 2L, 3L, 4L, 7L, 5L, 3L, 6L, 4L, 6L, 4L, 5L, 5L, 
3L, 8L, 5L, 3L, 11L, 3L, 4L, 6L, 8L, 4L, 9L, 3L, 4L, 3L, 3L, 
5L, 7L, 3L, 2L, 4L, 4L, 3L, 2L, 5L, 8L, 10L, 6L, 4L, 8L, 6L, 
0L, 5L, 8L, 9L, 2L, 9L, 9L, 0L, 2L, 3L, 5L, 9L, 5L, 5L, 5L, 3L, 
4L, 2L, 1L, 5L, 7L, 3L, 5L, 7L, 5L, 1L, 2L, 3L, 5L, 7L, 2L, 5L, 
5L, 5L, 5L, 2L, 2L, 4L, 6L, 5L, 4L, 2L, 3L, 4L, 5L, 2L, 2L, 1L, 
1L, 1L, 2L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 1L, 3L, 2L, 3L, 1L, 1L, 
2L, 4L, 4L, 4L, 2L, 4L, 4L, 4L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 
3L, 3L, 3L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 4L, 3L, 1L, 
2L, 2L, 1L, 2L, 2L, 2L, 4L, 2L, 3L, 1L, 0L, 1L, 0L, 1L, 1L, 1L, 
1L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), 
    UT2x45.11 = c(0L, 0L, 1L, 0L, 1L, 2L, 0L, 0L, 0L, 1L, 2L, 
    0L, 1L, 0L, 1L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 
    0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L), UT2x45.12 = c(0L, 1L, 0L, 0L, 1L, 0L, 
    0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 1L, 1L, 0L, 0L, 
    0L, 1L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 
    0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 
    1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L)), .Names = c("tiempo", 
"TR2x45.1", "TR2x45.10", "TR2x45.11", "TR2x45.12", "TR2x45.8", 
"TR2x45.9", "UT2x45.1", "UT2x45.10", "UT2x45.11", "UT2x45.12"
), row.names = c(NA, -181L), class = "data.frame")

我的目标是分析灯光前后的响应频率(我可以定义两个 18 秒或四个 9 秒的间隔)。我正在考虑分析我有多少次响应 = 1,响应 = 2 等等,对于每个时间间隔的两组中的每只动物。我还需要绘制数据,但一旦我得到频率/正确融化的数据,我可以尝试自己修复它。

这是一个简单的例子(第一列 vs t)

> grep(pattern = "1",x = TR)
[1]  7 11
> tiempo[grep(pattern= "1",x=TR)]
[1] 283.2 284.0

所以我应该在 283.2 得到一个“事件 1”,在 284 得到另一个“事件 1”。

当我对 TR 3 号提出同样的要求时

> tiempo[grep(pattern= "1",x=TR3)]

[1] 291

我应该在 291 时间得到一个“事件 1”。

如果来自同一组的两只动物在时间和事件上存在巧合,则应添加。1“1 事件”+1“1 事件”=2“1 事件”。这就是我想为每只动物获得的频率,然后在每个时间点折叠成组。

更新

我已经设法写下一些函数,这些函数可以让我找到我正在寻找的响应值 ( num) 在数据框中的位置dat并给我时间(在我应该以某种方式在组内折叠的列表中)

grep.fun<-function(num,dat){
li<-list(apply(dat,2,function(dat) grep(num,dat)))

return(li)
}


find.tempo<-function(num,dat){
j<-1
LIS<-list()
for (i in grep.fun(num,dat)[[1]]) {
  LIS[j]<-list(dat$t[c(i)])
if (j>=length(dat)) break else
j<-j+1

}
return(LIS)
}

contar<-function(num,dat){
  tabla<-data.frame(
    variable=names(dat),freq=as.numeric(summary(find.tempo(num,dat))[,1])) # first column of summary is freq

  return(tabla)
  }

此外,我需要折叠组内的响应(作为时间的函数)值以进行频率分析。

4

1 回答 1

0

我已经设法编写了一组函数来做我想做的事情。我不得不将我的数据集分成两组来提供dat参数,但这已经足够了。

代码是这样的。

grep.fun<-function(num,dat){
li<-list(apply(dat,2,function(dat) grep(num,dat)))
return(li)
}


find.tempo<-function(num,dat){
j<-1
LIS<-list()
for (i in grep.fun(num,dat)[[1]]) {
  LIS[j]<-list(dat$t[c(i)])
if (j>=length(dat)) break else
j<-j+1

}
return(LIS)
}

contar.tempo<-function(num,dat){
  df<-data.frame(rep(NA,length(dat$tiempo)),rep(NA,length(dat$tiempo)))
  i<-1 
  for (time in dat$tiempo){
    cuenta<-sum(as.numeric(grepl(pattern=time,find.tempo(num,dat))))
    df[i,]<-c(time,cuenta)
    if (i>=length(dat$tiempo)) break else
      i<-i+1
    }
  names(df)<-c("tiempo","cuenta")
return(df)
}

contar.freq<-function(num,dat){
  tabla<-data.frame(
    variable=names(dat),freq=as.numeric(summary(find.tempo(num,dat))[,1])) # first column of summary is freq
  tabla2<-tabla[-1,] # sacar tiempo
  return(tabla2)
  }

contar.tempo函数是我将用来输入我想要评估的反应水平 ( num) 以及训练和控制动物的两个数据集的函数。结果是一个数据框,其中包含动物发生一定程度事件的次数。(例如,df<-contar.tempo(1,your_data))

contar.freq功能可用于统计每只动物在一定反应水平下的事件数。

于 2015-04-18T21:22:49.320 回答