#' Calculate mean net displacement per odor pulse.
#'
#' Calculate mean response per odor pulse in a given experiment. Can be used to check data for adaptation/habituation effects.
#' Response is defined as the net displacement within 4s after odor encounter.
#'
#' @param object a \code{data.frame} as produced by \code{read.esm}
#' @return a \code{data.frame}
#' @export
response_per_pulse<-function(object){
data.short <- data.frame(cbind(object[, 1:3], object[, 104:144]))
data.clean <- data.short[!apply(is.na(data.short), 1, any),]
after <- apply(data.clean[, 4:44], 1, sum, na.rm = T)
after <- (-0.1 * after)
resp.frame <- data.frame(cbind(data.clean[, 1:3], after))
testframe <- data.frame()
for (i in 1:dim(resp.frame)[1]){
flypulse <- subset(resp.frame, pulse == resp.frame$pulse[i] & odour == resp.frame$odour[i])
n <- dim(flypulse)[1]
test.frame <- data.frame(flypulse[1, 2], flypulse[1, 3], n, mean(flypulse$after))
testframe <- rbind(testframe, test.frame)
testframe <- unique(testframe)
}
colnames(testframe) <- c("odor", "pulse", "n", "response")
write.table(testframe, file = "responses", sep = ",", row.names = F)
return(testframe)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.