Using predictors observed at different times in regression I want to predict vegetable yields for each field using samples of the vegetables. 
Some fields have multiple samples taken over the season and some only have one sample. Sample data consists of information such as vegetable length and weight. In the training set (fields that have already been harvested) the last sample date is much closer to harvest than for the test data, and so the sample information is much different--vegetables get longer and bigger as the season progresses. 
I'm wondering how to use all the information from the sample data for prediction. I'm working in R, so any modeling techniques would need to be available in R.
I tried just using the last sample but the information from the last sample is not comparable between the training and testing data because the last sample in the training data is much closer to harvest. 
I also thought about fitting many models using different time periods for the samples. So I might fit one model with sample information that was taken one week before harvest, another model using sample information two weeks before harvest, and so on. Then I can use the model which corresponds to the latest sample available for the test data. See below.
One approach might be to fit many models using different samples taken at different times.
# train data with sample two months before harvest
m_2m <- lm(yield ~ veg_length_2m_before_harv + veg_weight_2m_before_harv)

# train data with sample one month before harvest
m_1m <- lm(yield ~ veg_length_1m_before_harv + veg_weight_1m_before_harv)

# test data with sample one month before harvest
predict(m_1m, test_1m)

# test data with sample two months before harvest
predict(m_2m, test_2m)


The problem with this approach, as I understand it, is that I'm discarding a lot of information from the other samples.
 A: Personally, I would start with the full model, i.e. the maximum model which makes sense, which I guess would be this one? :
m1 <- lm(yield ~ veg_length_2m_before_harv * veg_weight_2m_before_harv + 
                 veg_length_1m_before_harv * veg_weight_1m_before_harv)

so you also allow of interactions of those variables within one time frame. Then I would proceed by backward elimination of the non-significant terms. You just do:
summary(m1)
summary(anova(m1))

and you especially look at the summary of the anova to see which terms are significant. Ten you remove one variable. You can then also compare the models together using anova or compare AIC.
If you have much more time frames to look for, I would do one big random forest model using randomForest package and then run varimp() function to quickly see which time frames will be of most importance. Also, there is an R package called climwin which allows to work with different time windows and find the optimal one. It is designed for climatic covariates, but I'd give it a look, if it can be used in non-climatic context (it would make sense).
EDIT: (answer to question in the comment) - how to approach the situation when records have basically data from very different time frames?
In this situation I would do an interaction of the measured variables with a quadratic term of the DAYS_BEFORE_HARVEST (DBH):
m2 <- lm(veg_length*DBH + veg_length*I(DBH^2) + veg_weight*DBH + veg_weight*I(DBH^2))

If one site has more measurements, then you would include them as multiple records; in that case, you could consider adding a random effect for each site to the model.
With this design, every record can be measured in different time frame and the interaction with the quadratic term of DBH will allow for changed response to the measured variables with certain optimal time window.
Instead of interacting with quadratic function of DBH, you could use more precise functions, like smoothing terms etc., but this leads to more complicated statistics. I would start off with the above.
