0

loess個々のプロットからの測定日の間でデータを補間するために使用しています。毎年、48 区画すべての毎日の解像度を取得したいと考えています。以下は私のデータセットからのサンプルです:

dput(vi.sample)

構造(list(Year = C(2012L、2012L、2012L、2012L、2012L、2012L、2012L)、2012L、2012L、2012L、2012L、2012L、2012L、2012L、2012L、2012L、2012L、2012L、2012L、 2012L), ジュリアン = c(150L, 153L, 157L, 165L, 173L, 179L, 186L, 193L, 201L, 208L, 226L, 150L, 153L, 157L, 165L, 173L, 179L,186L, 281L, 281L ), jdx = c(2.573770492, 2.625245902, 2.693879781, 2.831147541, 2.968415301, 3.07136612, 3.19147541, 3.311584699, 3.448852459, 3.568961749, 3.877814208, 2.573770492, 2.625245902, 2.693879781, 2.831147541, 2.968415301, 3.07136612, 3.19147541, 3.311584699, 3.448852459, 3.568961749, 3.877814208) , サイト = 構造 (c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L ), .Label = "東", class = "factor"), type = structure(c(1L, 1L, 1L, 1L, 1L,1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "b", class = "factor"), trt = 構造体(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "a", class = "factor"), plot = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L、2L、2L、2L、2L、2L)、vi = c(0.41、0.44、0.52、0.64、0.66、0.67、0.64、0.66、0.61、0.7、0.7、0.41、0.45、0.55、0.61、0.63、0.66 , 0.63, 0.64, 0.6, 0.7, 0.69)), .Names = c("year", "julian", "jdx", "site", "type", "trt", "plot", "vi") 、クラス = "data.frame"、row.names = c(NA, -22L))b", class = "factor"), trt = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "a", class = "factor"), プロット = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L 、2L、2L、2L、2L、2L、2L、2L、2L、2L、2L、2L)、vi = c(0.41、0.44、0.52、0.64、0.66、0.67、0.64、0.66、0.61、0.7、0.7、 0.41, 0.45, 0.55, 0.61, 0.63, 0.66, 0.63, 0.64, 0.6, 0.7, 0.69)), .Names = c("年", "ジュリアン", "jdx", "サイト", "タイプ"," trt"、"plot"、"vi")、class = "data.frame"、row.names = c(NA, -22L))b", class = "factor"), trt = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "a", class = "factor"), プロット = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L 、2L、2L、2L、2L、2L、2L、2L、2L、2L、2L、2L)、vi = c(0.41、0.44、0.52、0.64、0.66、0.67、0.64、0.66、0.61、0.7、0.7、 0.41, 0.45, 0.55, 0.61, 0.63, 0.66, 0.63, 0.64, 0.6, 0.7, 0.69)), .Names = c("年", "ジュリアン", "jdx", "サイト", "タイプ"," trt"、"plot"、"vi")、class = "data.frame"、row.names = c(NA, -22L))class = "factor"), plot = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L 、2L、2L)、vi = c(0.41、0.44、0.52、0.64、0.66、0.67、0.64、0.66、0.61、0.7、0.7、0.41、0.45、0.55、0.61、0.63、0.66、0.63、0.64、 0.7, 0.69)), .Names = c("year", "julian", "jdx", "site", "type", "trt", "plot", "vi"), class = "data.frame "、row.names = c(NA, -22L))class = "factor"), plot = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L 、2L、2L)、vi = c(0.41、0.44、0.52、0.64、0.66、0.67、0.64、0.66、0.61、0.7、0.7、0.41、0.45、0.55、0.61、0.63、0.66、0.63、0.64、 0.7, 0.69)), .Names = c("year", "julian", "jdx", "site", "type", "trt", "plot", "vi"), class = "data.frame "、row.names = c(NA, -22L))"type"、"trt"、"plot"、"vi")、class = "data.frame"、row.names = c(NA, -22L))"type"、"trt"、"plot"、"vi")、class = "data.frame"、row.names = c(NA, -22L))

収集されたデータの 3 つの季節 (2012 年から 2014 年) のそれぞれで、各プロットからデータを補間する必要があります。subset関数を使用して成功しました。私はユリウス日を使用していることに注意してください。ただし、この日付形式には特にこだわっていません。

lo <- loess(vi~julian, 
               subset(vi.sample, year=="2012" & site=="east" 
               & type=="b" & trt=="a" & plot=="1"),
               model=TRUE,
               na.action=na.exclude)

質問: コードを自動化して、各プロット/年の組み合わせからデータを補間する方法はありますか? デザインnlsListを使った機能に沿って考えています。| year/site/type/trt/plot

2 番目の質問はpredict関数に関するものです。次のコードは、上で指定されたプロットのフィットされた vi 値を正常に表示します。

pred <- predict(lo, seq(from =150, to =226, 
            by = 1), se=FALSE)

ただし、対応する x 値は元のユリウス日と同じではありません。
質問: 黄土モデルで使用されるユリウス日を表す予測値を取得するにはどうすればよいですか? これらの日付は、年/区画ごとに異なる場合があることに注意してください。

4

1 に答える 1