Передо мной стоит задача рассчитать уравнение множественной регрессии для набора данных. Есть несколько файлов одинаковой структуры с данными для разных районов. Предполагаю организовать цикл, в котором последовательно подгружать файлы, выполнять расчеты и записывать результат в файл с таким же именем, но другим расширением. Составил следующую программку:
Код: Выделить всё
f <- c("_M_.dat","basin.DAT","Land.DAT","Mount.DAT","trogs.DAT","flat.DAT", "island.DAT","sedim.DAT","RF2.DAT") # составляем вектор из имен файлов
for(m in 1:9) {
z <- paste(f[m],"txt",sep=".") # задаем имя выходного файла
x <- read.table(f[m], sep=' ', header= TRUE) # читаем исходные данные
y <- data.frame(M=abs(x$M), X1=x$X1, X2= x$X2, X3=x$X3/-1000, X4=(x$X3/-1000)* x$X1* x$X2) # подготавливаем таблицу для рассчета
row.names(y) <- x$N
fit <- lm(M ~ X1+ X2 + X3 + X4, data=y) # рассчитываем уравнение регрессии
write(f[m],file=z, append = FALSE)
summary(fit)
write(fit$coefficients,file=z,append = TRUE) # пытаемся записать информацию в файл
}
Первая проблема: цикл не работает, хотя если в тело цикла добавить строки:
Код: Выделить всё
m
f[m]
Вторая проблема: не получается записать fit в файл. Посмотрел структуру fit, там полно переменных. Переменную $coefficients удалось записать, при подстановке остальных выдает либо ошибку, либо печатает два пустых байта в файл.
А я планировал получит запись, аналогичную выводу функции summary(fit).
Подскажите, пожалуйста, что я делаю неправильно.