Я пытаюсь подогнать набор данных к функции ошибки. Я успешно использовал следующий код:
erf <- function(x) 2 * pnorm(x * sqrt(2)) - 1
data <- read.csv("z0.csv")
x<-data[,1]
y<-data[,2]
y<-y-min(y)
y<-y/max(y)
x<-x[which.max(y):which.min(y)]
x<-(x-min(x))/7200
y<-y[which.max(y):which.min(y)]
m<-nls(y~a/2*(1-erf((sqrt(2)*(x-b))/c)),start=list(a=1,b=0,c=0.001))
r<-summary(m)$coefficients[3,1]
dr<-summary(m)$coefficients[3,2]
Промежуточные шаги предназначены для нормализации моих данных, чтобы сделать мое максимальное значение y одним, а мой минимальный ноль; использовать определенные данные для подгонки; и сделать преобразование для х Вейлс.
Поскольку я должен выполнить ту же процедуру для большого количества файлов, я сделал следующую функцию:
radius <- function(file) {
data <- read.csv(file = paste0(file, ".csv")
x<-data[,1]
y<-data[,2]
y<-y-min(y)
y<-y/max(y)
x<-x[which.max(y):which.min(y)]
x<-(x-min(x))/7200
y<-y[which.max(y):which.min(y)]
m<-nls(y~a/2*(1-erf((sqrt(2)*(x-b))/c)),start=list(a=1,b=0,c=0.001))
c<-summary(m)$coefficients[3,1]
return(c)
}
Но я получаю следующие ошибки:
Ошибка: неожиданный символ в:
Ошибка: неожиданный символ в:
"data <- read.csv (file = paste0 (file," .csv ")
х "</p>
Ошибка в nls (y ~ a / 2 * (1 - erf ((sqrt (2) * (x - b)) / c)), start =
список (a = 1,: число итераций превысило максимум 50
Ошибка: нет функции для возврата, переход на верхний уровень
Ошибка: неожиданное '}' в "}"
Что я делаю не так?