R Help - I'm attempting to use fminsearch and it continues to give me errors. I have a normal Rescorla Wagner function that has 2 parameters and returns total error. for some reason fminsearch keeps saying the type of errors below, I've put the function and data after it using dput
> sol <- fminsearch(rescorlaWagner(learningRate,decision_slope), c(-1.2,1)) Error in this$fun(x = x, index = index, fmsfundata = this$costfargument) : attempt to apply non-function > sol <- fminsearch(rescorlaWagner,c(alphaPlus = alphaPlus, decision_slope = decision_slope), c(-1.2,1)) Error in options[[name]] : subscript out of bounds rescorlaWagner <- function(alphaPlus, decision_slope){ # alphaPlus <- parameters[1] # decision_slope <_- parameters[2] #dat <- mainData[mainData$participants == subjects[s],] dat$choice <- ifelse(dat$cueResp.keys == 5, 1, 0) dat$reward <- dat$trialChange # numberTrials[s] <<- length(dat$choice) numberTrials <<- length(dat$choice) V1 <- 0; V0 <- 0; totError <- 0; thList = 0; block = 0; valueOne <- 0; valueZero <- 0; probOfStim1 <- .000001; probOfStim2 <- .000001; logLike <- 0; V1[1] = 0; V0[1] = 0; for (i in 2:length(dat$choice)) { if (dat$choice[i-1] == 1) # Chose pattern 1 last time { logLike[i] <- logLike[i-1] - log(probOfStim1[i-1]) #print(logLike) delta1 <- dat$reward[i] - V1[i-1] V1[i] <- V1[i-1] + alphaPlus * delta1 V0[i] <- V0[i-1] } else # Chose pattern 0 last time instead of pattern 1 { logLike[i] <- logLike[i-1] - log(probOfStim2[i-1]) delta0 <- dat$reward[i] - V0[i-1] V0[i] <- V0[i-1] + alphaPlus * delta0 V1[i] <- V1[i-1] } probOfStim1[i] <- exp(decision_slope * V1[i])/(exp(decision_slope * V1 [i] + exp(decision_slope * V0[i]))) probOfStim2[i] <- exp(decision_slope * V0[i])/(exp(decision_slope * V1 [i] + exp(decision_slope * V0[i]))) valueOne[i] <- V1[i] valueZero[i] <- V0[i] newList <- list("EVpattern1" = valueOne, "EVpattern0" = valueZero, "ProbabilityStim1" = probOfStim1, "ProbabilityStim2" = probOfStim2, "LogLikelihood" = logLike) logLike[i] } #return(newList) return(logLike[i]) } dput(dat) structure(list(highCueImg = c("1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp", "1.bmp"), fixationDuration = c(2.900504833, 2.137709799, 3.314149929, 3.034789701, 3.44018723, 3.559188201, 4, 3.397855819, 2.424957014, 3.010173792, 2.754706831, 2.183118953, 3.328269233, 3.058698132, 3.030312482, 2.948379082, 2.48854601, 2.635627291, 2.62972477, 3.071401111, 3.343837986, 3.452638681, 3.044377797, 2, 3.139145494, 2.821634126, 3.463414658, 2.974553193, 2.887472182, 3.276110294, 2.774994095, 2.538595411, 2, 2, 2, 2.937451712, 3.030693282, 3.533087478, 2.821526274, 2), condition = c("gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain", "gain"), value = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), lowCueImg = c("2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp", "2.bmp"), trials.thisRepN = 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), trials.thisTrialN = c(0L, 2L, 4L, 6L, 10L, 12L, 14L, 15L, 18L, 19L, 21L, 24L, 30L, 36L, 0L, 6L, 9L, 10L, 12L, 15L, 16L, 22L, 27L, 31L, 33L, 36L, 37L, 0L, 3L, 4L, 6L, 7L, 8L, 11L, 14L, 23L, 30L, 32L, 33L, 35L), trials.thisN = c(0L, 2L, 4L, 6L, 10L, 12L, 14L, 15L, 18L, 19L, 21L, 24L, 30L, 36L, 0L, 6L, 9L, 10L, 12L, 15L, 16L, 22L, 27L, 31L, 33L, 36L, 37L, 0L, 3L, 4L, 6L, 7L, 8L, 11L, 14L, 23L, 30L, 32L, 33L, 35L), trials.thisIndex = c(0L, 2L, 4L, 6L, 10L, 12L, 14L, 15L, 18L, 19L, 21L, 24L, 30L, 36L, 0L, 6L, 9L, 10L, 12L, 15L, 16L, 22L, 27L, 31L, 33L, 36L, 37L, 0L, 3L, 4L, 6L, 7L, 8L, 11L, 14L, 23L, 30L, 32L, 33L, 35L), high = c(5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L), low = c(6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L), cueTime = c(0.119068770004, 20.0149482278, 39.3913808842, 59.2522502599, 97.990193226, 117.999774375, 137.977367394, 147.956777102, 177.930680089, 187.577239771, 207.587493584, 237.544439209, 295.992193444, 355.789316562, 0.133269903658, 59.9700627473, 89.6437574958, 99.3573393621, 119.250773587, 149.107854998, 159.088620573, 217.669339096, 266.886893568, 306.807173693, 326.067568655, 356.041074367, 366.021205168, 0.133207719696, 29.9990445702, 39.9951733175, 59.9719083577, 69.9688165736, 79.7328835322, 108.989916701, 138.230480484, 226.768412694, 295.246161918, 315.222909848, 325.219804178, 345.196583306), chooseTime = c(0.164843432754, 20.0597509983, 39.4367907433, 59.313679519, 98.0511001692, 118.044607117, 138.038122245, 148.018215406, 177.991826923, 187.638709517, 207.632219355, 237.589165691, 296.053516823, 355.850799047, 0.183364513565, 60.0152965201, 89.688980897, 99.4025104961, 119.296034835, 149.153016207, 159.149770617, 217.714112771, 266.931477687, 306.868519435, 326.128944696, 356.085867007, 366.065983813, 0.185307595107, 30.0603012765, 40.0403847835, 60.017241203, 70.0139768887, 79.794160632, 109.051319454, 138.275161454, 226.813068733, 295.29086624, 315.267703221, 325.281141721, 345.241325264), responseTime = c(1.69766205347, 21.3426436282, 40.5030967752, 60.7465334017, 99.1007329297, 119.910673908, 139.720902175, 149.800975001, 179.474667321, 189.521422584, 209.498269564, 239.188629276, 297.68630058, 357.466910556, 1.73283767373, 61.6480800894, 91.6549971296, 101.118596189, 120.962149647, 150.869099694, 161.315733453, 219.846762291, 268.547610394, 308.284709937, 327.795056685, 357.63537071, 367.465509636, 1.20163811838, 31.5431323218, 41.6065368123, 61.6833602893, 71.4468475335, 81.5602346449, 111.017339739, 139.857969642, 228.229268719, 296.857001011, 316.667249551, 326.780638151, 346.690839156), cueResp.keys = c("6", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5"), cueResp.corr = c(0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), cueResp.rt = c(0.533380177969, 0.266532022104, 0.0500725925289, 0.433291462956, 0.0500901515477, 0.84986263882, 0.683214172019, 0.783185845703, 0.48325372425, 0.883164556527, 0.849827385453, 0.58323989324, 0.633225596632, 0.616585605117, 0.566592999914, 0.616564437308, 0.949764760595, 0.699886593775, 0.649905965244, 0.699878703306, 1.16631698494, 1.11640042371, 0.599932215969, 0.416623022147, 0.66655325704, 0.533264790669, 0.383298154791, 0.0334208235774, 0.483276527291, 0.549915251434, 0.649906660688, 0.416622732692, 0.766502526153, 0.966452151311, 0.566611852083, 0.399999961871, 0.549913251563, 0.383312123816, 0.499929660817, 0.433279880996), outcome = c("False", "True", "False", "True", "True", "False", "False", "True", "False", "False", "True", "True", "True", "True", "False", "True", "True", "True", "True", "True", "True", "False", "True", "True", "True", "True", "False", "True", "True", "True", "True", "True", "True", "True", "True", "True", "True", "True", "True", "True" ), trialChange = c(0L, 1L, 0L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L ), runningBankTotal = c(0L, 1L, 1L, 1L, 0L, 0L, -1L, 0L, -1L, -1L, 0L, 1L, 2L, 1L, 0L, 0L, 1L, 2L, 2L, 3L, 4L, 2L, 2L, 3L, 4L, 5L, 5L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 6L, 6L, 5L, 6L, 7L, 8L), feedbackTime = c(5.03210832814, 25.0095173362, 44.3865482735, 64.2634794111, 103.000923924, 122.994382759, 142.971258771, 152.95144046, 182.924951435, 192.588530855, 212.581993437, 242.53893663, 300.986634339, 360.783862007, 5.03530764075, 64.965030954, 94.6387330854, 104.368972999, 124.245816409, 154.102824448, 164.082872867, 222.680585645, 271.897999411, 311.818302701, 331.062036785, 361.035651024, 371.015758808, 5.03618633224, 34.9934144733, 44.9901716237, 64.9670543311, 74.9637716194, 84.7439667717, 113.984431745, 143.224937046, 231.762859821, 300.240661343, 320.21753607, 330.214242471, 350.191541889), fixationTime = c(7.26391823943, 27.2241332653, 46.6011578196, 66.4780221495, 105.215460197, 125.208968288, 145.185827933, 155.165931423, 185.139538768, 194.80307024, 214.796575853, 244.753504942, 303.201212026, 362.998467215, 7.26574414055, 67.179653612, 96.8533502551, 106.583513696, 126.460384852, 156.317372687, 166.297459825, 224.895128913, 274.112492525, 314.032860656, 333.276624081, 363.250234207, 373.230329086, 7.26770291281, 37.2079844656, 47.2047548558, 67.18160346, 77.1783364203, 86.9585412487, 116.199012703, 145.439518309, 233.977453785, 302.455211908, 322.432067869, 332.428831237, 352.405710448), expStartTime = c("Sat Aug 18 18:07:45 2012", "Sat Aug 18 18:07:45 2012", "Sat Aug 18 18:07:45 2012", "Sat Aug 18 18:07:45 2012", "Sat Aug 18 18:07:45 2012", "Sat Aug 18 18:07:45 2012", "Sat Aug 18 18:07:45 2012", "Sat Aug 18 18:07:45 2012", "Sat Aug 18 18:07:45 2012", "Sat Aug 18 18:07:45 2012", "Sat Aug 18 18:07:45 2012", "Sat Aug 18 18:07:45 2012", "Sat Aug 18 18:07:45 2012", "Sat Aug 18 18:07:45 2012", "Sat Aug 18 18:15:02 2012", "Sat Aug 18 18:15:02 2012", "Sat Aug 18 18:15:02 2012", "Sat Aug 18 18:15:02 2012", "Sat Aug 18 18:15:02 2012", "Sat Aug 18 18:15:02 2012", "Sat Aug 18 18:15:02 2012", "Sat Aug 18 18:15:02 2012", "Sat Aug 18 18:15:02 2012", "Sat Aug 18 18:15:02 2012", "Sat Aug 18 18:15:02 2012", "Sat Aug 18 18:15:02 2012", "Sat Aug 18 18:15:02 2012", "Sat Aug 18 18:22:19 2012", "Sat Aug 18 18:22:19 2012", "Sat Aug 18 18:22:19 2012", "Sat Aug 18 18:22:19 2012", "Sat Aug 18 18:22:19 2012", "Sat Aug 18 18:22:19 2012", "Sat Aug 18 18:22:19 2012", "Sat Aug 18 18:22:19 2012", "Sat Aug 18 18:22:19 2012", "Sat Aug 18 18:22:19 2012", "Sat Aug 18 18:22:19 2012", "Sat Aug 18 18:22:19 2012", "Sat Aug 18 18:22:19 2012" ), vers = c("A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C"), expName = c("None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None", "None"), mriMode = c("Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan", "Scan"), session = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), triggerWallTime = c("Sat Aug 18 18:07:58 2012", "Sat Aug 18 18:07:58 2012", "Sat Aug 18 18:07:58 2012", "Sat Aug 18 18:07:58 2012", "Sat Aug 18 18:07:58 2012", "Sat Aug 18 18:07:58 2012", "Sat Aug 18 18:07:58 2012", "Sat Aug 18 18:07:58 2012", "Sat Aug 18 18:07:58 2012", "Sat Aug 18 18:07:58 2012", "Sat Aug 18 18:07:58 2012", "Sat Aug 18 18:07:58 2012", "Sat Aug 18 18:07:58 2012", "Sat Aug 18 18:07:58 2012", "Sat Aug 18 18:15:13 2012", "Sat Aug 18 18:15:13 2012", "Sat Aug 18 18:15:13 2012", "Sat Aug 18 18:15:13 2012", "Sat Aug 18 18:15:13 2012", "Sat Aug 18 18:15:13 2012", "Sat Aug 18 18:15:13 2012", "Sat Aug 18 18:15:13 2012", "Sat Aug 18 18:15:13 2012", "Sat Aug 18 18:15:13 2012", "Sat Aug 18 18:15:13 2012", "Sat Aug 18 18:15:13 2012", "Sat Aug 18 18:15:13 2012", "Sat Aug 18 18:22:28 2012", "Sat Aug 18 18:22:28 2012", "Sat Aug 18 18:22:28 2012", "Sat Aug 18 18:22:28 2012", "Sat Aug 18 18:22:28 2012", "Sat Aug 18 18:22:28 2012", "Sat Aug 18 18:22:28 2012", "Sat Aug 18 18:22:28 2012", "Sat Aug 18 18:22:28 2012", "Sat Aug 18 18:22:28 2012", "Sat Aug 18 18:22:28 2012", "Sat Aug 18 18:22:28 2012", "Sat Aug 18 18:22:28 2012" ), date = c("2012_Aug_18_1807", "2012_Aug_18_1807", "2012_Aug_18_1807", "2012_Aug_18_1807", "2012_Aug_18_1807", "2012_Aug_18_1807", "2012_Aug_18_1807", "2012_Aug_18_1807", "2012_Aug_18_1807", "2012_Aug_18_1807", "2012_Aug_18_1807", "2012_Aug_18_1807", "2012_Aug_18_1807", "2012_Aug_18_1807", "2012_Aug_18_1815", "2012_Aug_18_1815", "2012_Aug_18_1815", "2012_Aug_18_1815", "2012_Aug_18_1815", "2012_Aug_18_1815", "2012_Aug_18_1815", "2012_Aug_18_1815", "2012_Aug_18_1815", "2012_Aug_18_1815", "2012_Aug_18_1815", "2012_Aug_18_1815", "2012_Aug_18_1815", "2012_Aug_18_1822", "2012_Aug_18_1822", "2012_Aug_18_1822", "2012_Aug_18_1822", "2012_Aug_18_1822", "2012_Aug_18_1822", "2012_Aug_18_1822", "2012_Aug_18_1822", "2012_Aug_18_1822", "2012_Aug_18_1822", "2012_Aug_18_1822", "2012_Aug_18_1822", "2012_Aug_18_1822"), participant = c("1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285", "1285"), mean_rt = c(NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), bank = c(0L, 1L, 1L, 1L, 0L, 0L, -1L, 0L, -1L, -1L, 0L, 1L, 2L, 1L, 0L, 0L, 1L, 2L, 2L, 3L, 4L, 2L, 2L, 3L, 4L, 5L, 5L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 6L, 6L, 5L, 6L, 7L, 8L), X = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), resp = c("Right", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left", "Left")), .Names = c("highCueImg", "fixationDuration", "condition", "value", "lowCueImg", "trials.thisRepN", "trials.thisTrialN", "trials.thisN", "trials.thisIndex", "high", "low", "cueTime", "chooseTime", "responseTime", "cueResp.keys", "cueResp.corr", "cueResp.rt", "outcome", "trialChange", "runningBankTotal", "feedbackTime", "fixationTime", "expStartTime", "vers", "expName", "mriMode", "session", "triggerWallTime", "date", "participant", "mean_rt", "bank", "X", "resp"), row.names = c(241L, 243L, 245L, 247L, 251L, 253L, 255L, 256L, 259L, 260L, 262L, 265L, 271L, 277L, 281L, 287L, 290L, 291L, 293L, 296L, 297L, 303L, 308L, 312L, 314L, 317L, 318L, 321L, 324L, 325L, 327L, 328L, 329L, 332L, 335L, 344L, 351L, 353L, 354L, 356L), class = "data.frame") [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.