I've got a time dependent data from animal recording. My data has two groups (TR and UT) each group has 20 replicate. Tiempo (time) variable goes from 282 sec to 318 sec. I have a turning point at 300 sec in which I turn on a light stimulus. I register response that I convert into an numeric integer value.
A data subset looks like this
> 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")
My goal is to analyze the frequency of response before and after the light (I could define two 18-sec or four 9-sec intervals). I was thinking in analyze how many times I have response=1, response=2 and so on, for each animal within both groups for each time interval. I also would need to plot the data but I can try to fix that by myself once I get the frequency/correctly melted data.
Here's an easy example (first column vs t)
> grep(pattern = "1",x = TR)
[1] 7 11
> tiempo[grep(pattern= "1",x=TR)]
[1] 283.2 284.0
So I should get an "event of 1" in time 283.2 and another "event of 1" in 284.
When I ask the same for TR number 3
> tiempo[grep(pattern= "1",x=TR3)]
[1] 291
I should get an "event of 1" in time 291.
If two animals from the same group have a coincidence in time and event that should be added. 1 "event of 1" + 1 "event of 1" = 2 "event of 1". And that's the frequency that I want to get for every animal, collapsed later into group for each time point.
UPDATE
I have managed to write down some functions that get me the position of the response value I'm looking for (num
) in data frame dat
and give me the times (in a list that I should use someway to collapse within groups)
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)
}
Besides, I need to collapse response (as a function of time) values within the groups for frequency analysis.