Я пытаюсь автоматизировать расчет некоторых потребностей животных в энергии, когда у меня вводятся данные в виде дней на корм, ежедневного потребления корма и т. Д. Мой код сначала считывает исходные данные из CSV, использует его для вычисления некоторых начальных значений за пределами цикл запускает цикл вычислений энергии того дня для времени подачи, сохраняет эти результаты в кадре данных и затем записывает окончательный кадр данных в CSV.
У меня есть данные от> 300 овец на индивидуальной основе, как это, и я хочу автоматизировать чтение в файлах и записывать результаты в отдельные файлы CSV в определенной папке. Я знаю, что это означает цикл внутри цикла, но я пытаюсь понять, как именно это сделать.
Я знаю, что мне нужно прочитать файлы, используя файл files.list, например:
files = list.files("C:/Users/Me/Desktop/Sheepfiles/", pattern = "Sheep+.*csv")
но я хочу, чтобы каждый файл как отдельный фрейм данных проходил через модель, и мне нужно держать все отдельно входящими и выходящими.
setwd("C:Users/....../Sheepfiles")
input = read.csv(file = "Sheep131.csv", header = TRUE, sep =",")
#set up initialized values outside loop here
LWt0 = input$LWT[1]
EBW = LWT0*.96*.891
#constants go here
Results = NULL;
timefeed = input$DOF
#now the loop
for (i in timefeed)
{
#differential equations and calculations here
results1 = (c(t, NEG, MEI, OldMEI, HPmaint, EBW, ID, TRT))
names(results1) = c("DOF", "NEG", "MEI", "OldMEI","HPmaint", "EBW", "ID", "TRT")
print((results1))
Results = rbind(Results,results1)
#update variables to new values here
}
write.csv(Results, file = "Results131.csv")
Я хочу, чтобы они могли иметь файлы с SheepX в имени, по одному на овцу, где X - это ушная бирка #, чтобы их считывали, вычисляли, а затем автоматически выводили с результатами в ResultsX.csv , Если это помогает, номер ушной бирки находится в исходном входном файле под столбцом «ID». Так что для овец 1: 150 я бы получил результаты 1: 150 и т. Д.
Позже мне нужно будет иметь возможность читать эти файлы результатов обратно, извлекать результаты в определенные дни, а затем перетаскивать их в кадр данных для сравнения с наблюдениями, но это следующий шаг после того, как я получу все эти файлы проходят через модель.