длина 'dimnames' не равна данным экстента массива; длина [9] не является кратным или кратным числу строк [6] error- nlsLM в R? - PullRequest
0 голосов
/ 19 марта 2020

Я пытался согласовать сигмоидальную функцию с помощью функции nlsLM в R. Но я получил некоторые ошибки в R. Мои сценарии выглядят следующим образом:

aggfluxmet$Treatno <- 1  # i.e. treatno = 1 = "Control"
aggfluxmet$Treatno[which(aggfluxmet$Treat2 == "D 40%")] <- 2
aggfluxmet$Treatno[which(aggfluxmet$Treat2== "D 50%")] <- 3
aggfluxmet$Treatno[which(aggfluxmet$Treat2== "D 66%")] <- 4
aggfluxmet$Treatno <-  as.factor(aggfluxmet$Treatno)

modsig <- function(a, b, d, temp){
return(a*exp(b*exp(d*temp)))} 


modsig2 <- function(a, ftc, b, d, temp){
return(a[ftc]*exp(b*exp(d*temp)))} 

# limit for temperatures to include: 
Tlim <- 0        # means all data included


dat <- subset(aggfluxmet,!is.na(LM.flux) & !is.na(T_mean) & T_mean > Tlim)
model_level <- paste("modsig2_mean soil temperature vs LM.flux"," _by treat", sep="")

modx <- LM.flux ~ modsig2(a, b, d, ftc = Treatno, temp=T_mean)

start.l=list(a=1.06, b=-2.1, d=-0.18)
start.l$a <- rep(1,length(unique(dat$Treatno)))
modrun1 <- try(nlsLM(modx, data=dat, start=start.l, na.action=na.exclude,trace=TRUE,weights=(1/(LM.flux+0.49)),
           control = nls.lm.control(ftol = sqrt(.Machine$double.eps),
           ptol = sqrt(.Machine$double.eps), gtol = 0, diag = list(), epsfcn = 0,
           factor = 100, maxfev = integer(), maxiter = 1000, nprint = 0)))

 modrun1<-nls(modx,data=dat,start=start.l,na.action=na.exclude,trace=TRUE)

summary(modrun1)

И часть моих данных выглядит следующим образом:

obs CFlux    chrontime  Field_flag Treat2 LM.flux    LM.flux.se LM.R2      Wind T_mean  SWC_mean
51  0.816   (11/19/19 10:48:16) 1  A      1.2910607 0.001115148 0.9999015   NA  7.605   0.16955
214 0.553   (11/19/19 10:56:25) 1  D 40%  0.5863929 0.001460609 0.9993304   NA  7.605   0.16955
383 0.472   (11/19/19 10:59:48) 1  D 50%  0.5413015 0.001507698 0.9988531   NA  7.605   0.16955
552 0.773   (11/19/19 11:06:46) 1  D 66%  0.9137646 0.001720923 0.9994824   NA  7.605   0.16915
719 0.572   (11/19/19 11:14:38) 1  A      1.2863207 0.001228144 0.999866    NA  7.605   0.16955

Надеюсь, кто-то может помочь. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...