quickpsy can be used to fit sigmoidal functions defined by the user
library(quickpsy)
gompertz_fun <- function(x, p) exp(-p[1] * exp(-p[2] * x))
fit <- qpdat %>% quickpsy(phase, resp, fun = gompertz_fun, parini = c(1,.01),
grouping = .(interval))
fit %>% plot()
or even non-sigmoidal functions
n <- 100
x <- seq(-.3,.3,.1)
k <- c(10, 45, 90, 100, 60, 10, 5)
dat <- data.frame(x, k, n)
gaussian <- function(x, p) exp(-0.5*((x - p[2]) / p[3])^2) / (1 + exp(-p[1]))
fit <- dat %>% quickpsy(x, k, n, fun = gaussian, parini = c(0, 0, 0),
thresholds = F) # because the threshold is not well defined
fit %>% plot()