У меня 2000 растений пшеницы, растущих в течение 40 дней.Я хотел бы выполнить функцию коэффициентов на каждом заводе, чтобы найти коэффициенты квадратного уравнения, которые составляют 3 момента времени.(a, b и c)
(1) Функция coef(lm(y~poly(x,2,raw=TRUE))
работает именно так, как я хочу.
(2) Однако способ представления моих данных требует от меня ручного задания x и y.
(3) Таким образом, я растопил свои данные и заказал их.
(4) Я хотел бы сделать цикл, который возьмет первые три в столбце «День» и установитэто как х.Затем я хотел бы взять первые три в столбце «Высота» и установить его как y.
Затем я хотел бы выполнить функцию коэффициентов.
Последнее, что я хотел бычтобы представить выходные данные коэффициентов, которые мне нужны, предпочтительно в новой таблице данных.
Затем повторите для каждых трех строк, которые представляют каждый идентификатор пшеницы, для всех растений пшеницы.
1) Эта функция работает, давая мне коэффициенты: a, b, c
x<-c(1,2,3)
y<-c(1,10,4)
coef(lm(y~poly(x,2,raw=TRUE)))
2) Это то, как мои данные изначально выглядели
A = matrix(c(5, 4, 2, 10, 10, 4, 5, 15, 6),nrow=3, ncol=3)
colnames(A)<-c("10", "25", "40")
rownames(A)<-c("Wheat 1", "Wheat 2", "Wheat 3")
A
3) Это мой растопленный формат
A.melted<-as.data.frame(melt(A, id.vars="ID"))
A.melted<-A.melted[with(A.melted,order(Var1)),]
colnames(A.melted) <- c("WheatID", "Day", "Height")
A.melted$Day<-as.numeric(as.character(A.melted$Day))
A.melted
#
4) Это то, что я пытаюсь сделать с моим циклом ....
- для каждых 3 строк,
x<-A.melted[,2]
y<-A.melted[,3]
coef(lm(y~poly(x,2,raw=TRUE)))
- что-то для компиляции коэффициентов: a, b, c
Я просто не знаком с синтаксисом циклов, и я хотел бы любые советы и предложения.Изучая Google говорит мне, что не следует делать циклы, если это не является абсолютно необходимым, так как я могу столкнуться с большим количеством проблем - таким образом, я также открыт для техник без циклов.