Скажите, что у меня есть два условия: «а» и «б».Нейрон запускает в среднем 40 пиков в секунду (Гц) в состоянии «а» и 80 пиков в секунду в состоянии «б».Ответ на условие «a» представляется 20 раз, а условие «b» - 10 раз, причем каждое представление выполняется в течение 1000 мс.
AB <- rbind(
ldply( 1:20,
function(trial) {
data.frame(
trial=trial,
cond=factor('a',c('a','b')),
spiketime = runif(40,0,1000))
}
), ldply(21:30,
function(trial) {
data.frame(
trial=trial,
cond=factor('b',c('a','b')),
spiketime = runif(80,0,1000))
}
)
)
Простая гистограмма может быть построена с помощью:
qplot(spiketime, data=AB, geom='line',stat='bin',y=..count..,
xlim=c(0,1000), colour=cond, binwidth=100,xlab='Milliseconds')
Однако это не усредняется по презентациям, и, следовательно, значения на оси у примерно одинаковы.Я хотел бы изобразить скорость всплеска (пики / секунды) вдоль оси y, которая показала бы, что условие 'b' вызывает примерно вдвое больше пиков в секунду.Скорость всплеска не увеличивается по мере увеличения количества презентаций, она просто становится менее шумной.Есть ли способ сделать это без предварительной обработки блока данных AB?
Другими словами, могу ли я сделать что-то вроде:
qplot(spiketime, data=AB, geom='line',stat='bin',
y=..count../num_presentations*1000/binwidth, ylab='Spikes per second',
xlim=c(0,1000), colour=cond, binwidth=100,xlab='Milliseconds')
, где num_presentations будет 20 для условия'a' и 10 для условия 'b' и 1000 / binwidth будут просто константами для правильной единицы измерения?