У меня есть список значений, сохраненных в 'SurvieF.csv', как показано ниже: Первая строка содержит время в годах (1 год, 3 года, 5 лет и 10 лет), а вторая строка содержит имя переменнойв первом столбце и коэффициент выживания в оставшихся 4 столбцах.
1 3 5 10
var1 0.9 0.85 0.83 0.81
var2 0.87 0.86 0.84 0.81
var3 0.79 0.77 0.75 0.72
survieF<-read.csv("SurvieF.csv", sep=";", dec=".", header=TRUE)
В приведенном ниже коде, например,
S<-survieF[3,2:5]
x<-c(1,3,5,10)
Функция:
f <- function(ab){
a <- ab[1]
b <- ab[2]
return(sum((exp(a*x**b)-S)**2))
}
Поиск параметров, минимизирующих мою сумму, с помощью функции nlm:
minim <- nlm(f,p=c(1,0))
ab <- minim$estimate
a_opt <- ab[1]
b_opt <- ab[2]
Использование оптимальных параметров для получения значений:
prediction_exp <- function(x){
return(exp(a_opt*x**b_opt))}
Затем я использую параметры для оценки выживаемости от 1 до 20лет.
survieFcan<-prediction_exp(1:20)
Тем не менее, я хочу иметь возможность автоматически запускать код в каждой строке моего фрейма данных «SurvieF», а затем экспортировать все значения, оцененные в период с 1 по 20 год, в Excel.Как я могу это сделать?