lm オブジェクトがあり、係数で抽出された式を取得したいと考えています。このオブジェクトには、月などのカテゴリ変数と、これらのカテゴリ変数および数値変数との相互作用が含まれます。
別のユーザーが、カテゴリ変数以外のすべてで機能するコードを手伝ってくれましたが、カテゴリ変数を追加すると (ここでは d など)、エラーが発生し、「エラー (テキスト = x) : :1:785:予期しない数値定数":
a = c(1, 2, 5, 13, 40, 29, 82, 22, 34, 54, 12, 31, 21, 29, 31, 42)
b = c(12, 15, 20, 12, 34, 56, 12, 12, 15, 20, 12, 34, 56, 12, 32, 41)
c = c(20, 30, 40, 18, 72, 34, 12, 40, 18, 72, 28, 65, 21, 32, 42, 52)
d = structure(c(8L, 1L, 9L, 7L, 6L, 2L, 12L, 11L, 10L, 3L, 5L, 4L,
8L, 1L, 9L, 7L), .Label = c("April", "August", "December",
"February", "January", "July", "June", "March", "May", "November",
"October", "September"), class = "factor")
model = lm(a~b+c+factor(d))
as.formula(
paste0("y ~ ", round(coefficients(model)[1],2), " + ",
paste(sprintf("%.2f * %s",
coefficients(model)[-1],
names(coefficients(model)[-1])),
collapse=" + ")
)
)
私が上から得たものは、「解析中のエラー(テキスト= x)::1:53:予期しないシンボル1:y〜-7 + 14.23 * b + -6.82 * c + -529.30 * factor(d)August
私が望むのは、各月に係数を掛けた完全な式を取得することです (または、この場合はそのうちの 3 つだけです。実際のデータセットでは、はるかに多くのデータがあり、すべての月が少なくとも 8 回発生します)。しかし、この例では「予期しないシンボル」を使用し、実際のデータでは「解析中のエラー(テキスト = x) : :1:785: 予期しない数値定数」を使用して停止し、ここで行うように月を実行しようとさえしません。 (例と実際のコードの違いの理由がわからない)。
私の式は非常に大きいので、スケールアップできる必要があります (現在のコードはそうしています)。