R nsltools Regression, функция предварительного просмотра не принимает переменные - PullRequest
1 голос
/ 27 мая 2020

Я новичок в R, но хотел использовать пакеты «nls» и «nlstools», так как в нем есть хорошие инструменты для анализа и оценки.

код, который я использую:

conB1_2015 = read.csv("C:\\Path_to_File\\conB1_2015.csv")
conB1_2015 = na.omit(conB1_2015)
tRef <- mean(conB1_2015$Mean_Soil_Temp_V2..C., na.rm=TRUE)
rRef <- conB1_2015$Lin_Flux..mymol.m.2.s.1.[which.min(abs(conB1_2015$Mean_Soil_Temp_V2..C.-tRef))]
rMax <- max(conB1_2015$Lin_Flux..mymol.m.2.s.1., na.rm=TRUE)
half <- rMax/2
half_SM <- conB1_2015$Soil_Moist_V3[which.min(abs(conB1_2015$Lin_Flux..mymol.m.2.s.1.-half))]
form <- as.formula(Lin_Flux..mymol.m.2.s.1. ~ (rRef)*a*exp(b*Mean_Soil_Temp_V2..C.)*Soil_Moist_V3/(half_SM)+Soil_Moist_V3)
preview(form, data = conB1_2015, start = c(a = -1.98, b = -0.05), variable = 1)

Проблема в том, что я получаю эту ошибку при запуске этого кода: Ошибка в data.frame (value, row.names = rn, check.names = FALSE): имена строк имеют неправильную длину, когда я меняю переменные в form <- as.formula(Lin_Flux..mymol.m.2.s.1. ~ (rRef)*a*exp(b*Mean_Soil_Temp_V2..C.)*Soil_Moist_V3/(half_SM)+Soil_Moist_V3)

до form <- as.formula(Lin_Flux..mymol.m.2.s.1.~(rRef<-4.41)*a*exp(b*Mean_Soil_Temp_V2..C.)*Soil_Moist_V3/(half_SM<-7.19)+Soil_Moist_V3)

функция работает нормально. Я хотел автоматизировать скрипт для запуска нескольких CSV для тестирования разных моделей на разных данных. Неужели невозможно передать переменные в функцию предварительного просмотра или я что-то упустил? Не может быть проблем с заголовками или таблицей данных, так как во втором примере она работает нормально.

...